相关疑难解决方法(0)

使用 -o 时对 GNU/macOS grep 输出差异的困惑

为什么grepmacOS上的 BSD在这里只产生第一个词:

$ echo "once upon a time" | grep -o "[a-z]*"
once
Run Code Online (Sandbox Code Playgroud)

但这里所有的话:

$ echo "once upon a time" | grep -o "[a-z][a-z]*"
once
upon
a
time
Run Code Online (Sandbox Code Playgroud)

或者,使用扩展的正则表达式:

$ echo "once upon a time" | grep -E -o "[a-z]*"
once

$ echo "once upon a time" | grep -E -o "[a-z]+"
once
upon
a
time
Run Code Online (Sandbox Code Playgroud)

GNUgrep将为[a-z]+(or [a-z][a-z]*) 和生成相同的输出[a-z]*

$ echo "once upon a time" | ggrep -E -o "[a-z]*"
once …
Run Code Online (Sandbox Code Playgroud)

grep regular-expression

6
推荐指数
1
解决办法
1030
查看次数

使用命令行中的停用词列表在文件中查找 n 个最常用的词

我想使用停用词列表在文本文件中找到最常用的词。我已经有了这个代码:

tr -c '[:alnum:]' '[\n*]' < test.txt |
fgrep -v -w -f /usr/share/groff/current/eign |
sort | uniq -c | sort -nr | head  -10 > test.txt
Run Code Online (Sandbox Code Playgroud)

来自旧帖子, 但我的文件包含以下内容:

240 
 21 ipsum
 20 Lorem
 11 Textes
 9 Blindtexte
 7 Text
 5 F
 5 Blindtext
 4 Texte
 4 Buchstaben
Run Code Online (Sandbox Code Playgroud)

第一个只是一个空格,在文本中它们是标点符号(如点),但我不想要这个,所以我必须添加什么?

command-line text-processing

4
推荐指数
1
解决办法
4300
查看次数