regex - grep 命令找出任何字符后跟 '.' 的次数

标签 regex bash sorting unix grep

我必须借助 grep 找出任何字符后跟句点 (.) 的频率。在找到字符后跟句点多少次之后,我必须按升序对结果进行排序。

例如在这个字符串中:“Find my input. Output should be obtained. You need to find output.”

输出应该是这样的:

d 1 
t 2

到目前为止我做了什么:

cat filename | grep -o "*." | sort -u 

但它没有按预期工作。

有什么解决办法吗?我必须对 .txt 文件中的庞大图书库执行此操作。

最佳答案

GNU grep 的迭代方法:

grep -o '.\.' filename | sort | uniq -c

输出:

          1 d.
          2 t.

grep -Po '.(?=\.)' filename | sort | uniq -c

输出:

          1 d
          2 t

grep -Po '.(?=\.)' filename | sort | uniq -c | awk '{print $2,$1}'

输出:

d 1
t 2

关于regex - grep 命令找出任何字符后跟 '.' 的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876739/

相关文章:

regex - 使用正则表达式模式会产生编译错误 “Invalid regular expression”

python - 如何修改lxml自动链接更加自由?

c# - 正则表达式,删除标签中的点

bash - 使用了过多的处理能力,这部分效率低下吗?

java - 在java中使用BUBBLE SORT对二维字符串数组进行排序

git - 如何对 git 分支输出进行版本排序(与通常的字母/字典排序相比)

sorting - 删除文件中的 n 个重复行

regex - Mac 地址的 Grep 正则表达式

linux - Bash 脚本 : Find all filetypes and paths

linux - 制作一个 "copy"的linux系统