在 linux/Terminal 下有没有办法计算 char f 在纯文本文件中出现了多少次?
echo $(cat <file> | wc -c) - $(cat <file> | tr -d 'A' | wc -c) | bc
字母 A 在哪里
这个命令的文件大小为4.9 MB,搜索字符出现次数为1100000:
real 0m0.168s user 0m0.059s sys 0m0.115s
tr -d '\n' < file | sed 's/A/A\n/g' | wc -l
用您的字符替换两次出现的“ A”,并用您的输入文件替换“ file”。
sed 's/A/A\n/g
例如:
$ cat file abcdefgabcdefgababababbbba 1234gabca $ tr -d '\n' < file | sed 's/a/a\n/g' | wc -l 9
这样吧:
fgrep -o f <file> | wc -l
注意: 除了更容易记忆/复制和自定义,这是大约三次(对不起,编辑!搞砸了第一次测试)比韦伯的答案还快。
如果你所需要做的就是计算包含你的角色的行数,这样就可以了:
grep -c 'f' myfile
但是,它将同一行中多次出现“ f”的情况计为一个匹配项。
甚至更快:
tr -cd f < file | wc -c
这个命令的时间 与一个4.9 MB 的文件和1100000个出现的搜索字符:
real 0m0.089s user 0m0.057s sys 0m0.027s
对于同一个文件,使用 echo、 cat、 tr和 bc进行动词回答的时间:
echo
cat
tr
bc
Rob Hruska 用 tr,sed和 wc回答同一个文件的时间:
sed
wc
real 0m0.465s user 0m0.411s sys 0m0.080s
是时候用 fgrep和 wc回答同一个文件了:
fgrep
real 0m0.522s user 0m0.477s sys 0m0.023s