我有一个包含短语列表的文件
apples
banananas
oranges
我正在运行cat file.txt | xargs -I% sh -c "grep -Eio '(an)' >> output.txt"
我无法弄清楚的是,我希望输出包含原始行,例如:
bananas,an
oranges,an
如何在 grep 的输出中添加前缀以包含通过管道输送到它的值?
这应该是awk
的任务,请您尝试以下操作。
awk '/an/{print $0",an"}' Input_file
这将在Input_file的所有行中查找字符串an
,并在其中附加an
。
sed
的解决方案:
sed '/an/s/$/,an/' intput_file
这将查找与模式/an/
匹配的行,并将,an
追加到模式空间$
的末尾。
使用 awk 而不是grep
:
$ awk -v s="an" ' # search string
BEGIN {
OFS="," # separating comma
}
match($0,s) { # when there is a match
print $0,substr($0,RSTART,RLENGTH) # output
}' file
输出:
banananas,an
oranges,an