根据grep从文件中剪切单词

时间:2016-10-25 14:57:39

标签: bash shell grep cut

我有一个小的bash脚本如下:

cat foo.txt | grep "balt" > bar_file

理想情况下,我希望发生的是包含"balt"的每个字,我想从foo.txt文件中删除。我是否可以根据什么是grepped来获得如何基本上从一个文件中移动单词的方向。

1 个答案:

答案 0 :(得分:0)

作为旁注:不需要使用cat并将其输出传递给grep,因为您可以将文件名直接传递给grep,从而减​​少单个进程执行。< / p>

关于您的问题,您可-o选择grep来获取仅包含balt的匹配字词以及\b边界检查,如下所示:

$ cat foo.txt 
abcd baltabcd xyz
xdef abbaltcd xyz
balt
$ grep -o '\b\w*balt\w*\b' foo.txt 
baltabcd
abbaltcd
balt
$ grep -o '\b\w*balt\w*\b' foo.txt > bar_file
$ cat bar_file 
baltabcd
abbaltcd
balt
$

正如您所看到的,grep匹配balt之前或之后出现的0个或更多单词字符,并将其放入另一个文件中。 例如:baltabcdabbaltcdbalt