我有一个小的bash脚本如下:
cat foo.txt | grep "balt" > bar_file
理想情况下,我希望发生的是包含"balt"
的每个字,我想从foo.txt
文件中删除。我是否可以根据什么是grepped来获得如何基本上从一个文件中移动单词的方向。
答案 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个或更多单词字符,并将其放入另一个文件中。
例如:baltabcd
,abbaltcd
和balt