EN
Size: a a a
RO
EN
аᶘ
EN
EN
аᶘ
аᶘ
🌚
Лс
Лс
Лс
clear && hyperfine -w 10 -r 1000 -i "echo "12.3.4.24.567" | tr -d '\.' |head -c3" "echo "12.3.4.24.567" | sed -r 's/\.//g;s/(...).*/\1/'" "echo "12.3.4.24.567" | grep -oP '\d' | head -3 | tr -d '\n'" "echo "12.3.4.24.567" | sed 's/\.//g' |head -c3" "echo "12.3.4.24.567"| while read -r -n 1 c; do [[ "$c" =~ [0-9] ]] && res+="$c"; done; echo "${res:0:3}""
🌚
#!/bin/bash
#shellcheck disable=2154,SC2020
mkfile(){
:>/tmp/test"$1"
for (( i=0;i<="$1";i++ )); do
unset str
for (( j=0;j<=10;j++ )); do
str=$str${var:$((RANDOM%20)):1}
done
echo "$str">>/tmp/test"$1"
done
}
testfile(){
hyperfine -w 3 -r 1000 -i \
"tr -d '\\.' </tmp/test$1 | cut -b1-3" \
"sed -r 's/\\.//g;s/(...).*/\\1/' /tmp/test$1" \
"while IFS= read -r line; do unset res; while read -r -n 1 c ; do [[ $c =~ [0-9] ]] && res+=$c; done <<<$line; echo ${res:0:3}; done </tmp/test$1"
}
testcmd(){
tr -d '\.' </tmp/test10 | cut -b1-3
sed -r 's/\.//g;s/(...).*/\1/' /tmp/test10
while IFS= read -r line; do unset res; while read -r -n 1 c ; do [[ $c =~ [0-9] ]] && res+=$c; done <<<"$line"; echo "${res:0:3}"; done </tmp/test10
}
var='0.1.2.3.4.5.6.7.8.9.'
mkfile 10
testcmd
mkfile 1000
testfile 1000
exit
🌚
#!/bin/bash
mkfile(){
:>/tmp/test"$1"
for (( i=0;i<="$1";i++ )); do
unset str
for (( j=0;j<=10;j++ )); do
str=$str${var:$((RANDOM%20)):1}
done
echo "$str">>/tmp/test"$1"
done
}
test_tr(){
tr -d '\.' </tmp/test"$count" | cut -b1-3 >/dev/null
}
test_sed(){
sed -r 's/\.//g;s/(...).*/\1/' /tmp/test"$count" >/dev/null
}
test_while(){
while IFS= read -r line; do
unset res
while read -r -n 1 c ; do
[[ $c =~ [0-9] ]] && res+=$c
done <<<"$line"
echo "${res:0:3}"
done </tmp/test"$count" >/dev/null
}
var='0.1.2.3.4.5.6.7.8.9.'
count=100000
echo mkfile
mkfile "$count"
echo test_tr
time test_tr
echo test_sed
time test_sed
echo test_while
time test_while
echo hyperfine test_*
hyperfine -w 3 -r 1000 -i test_tr test_sed test_while
exit
Vs