我想通过终端进行以下操作。我有一个包含许多行的文件,每行包含一个完整的句子。有些行是空的。我想阅读文件并提取以.abc
结尾的所有单词。我想通过终端这样做。我怎么能这样做?
答案 0 :(得分:2)
grep
可能非常有用
$ cat input
.abc
.abdadf
assadf.abc
adsfas.abcadf
asdf.abc
$ grep -o '\b[^\.]*\.abc\b' input
assadf.abc
asdf.abc
它的作用
-o
在与给定的正则表达式匹配的行中打印字符串
\b[^\.]*\.abc\b
正则表达式匹配以.abc
\b
字边界
[^\.]
除.
*
匹配零个或多个
\.abc\b
匹配.abc
后跟字边界\b
注意强>
如果单词可以包含多个.
,则将正则表达式修改为
\b.*\.abc\b
其中.*
会匹配任何内容,包括.
答案 1 :(得分:1)
查找以.abc
结尾的所有字词。
grep -oP '\S*\.abc(?=\s|$)' file
\S*
零个或多个非太空漫画。(?=\s|$)
正向前瞻断言匹配后的字符必须是行锚的空格或末尾。答案 2 :(得分:1)
在各种其他可能性中尝试awk
。
awk '/\.abc$/' file
答案 3 :(得分:1)
您也可以使用sed命令。
sed -n '/\.abc$/ p' file