如何使用sed与模式文件和sed到位
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用sed与模式文件和sed到位相关的知识,希望对你有一定的参考价值。
我正在尝试使用模式列表来搜索4个大文件,并删除包含正则表达式的行。
我试图指定文件路径但它不起作用
但-n '/ {首页/粗糙/关} / P' rimco rimco2票据背书担保aval2
我尝试使用sed选项-f
,但它也没有用
但主场-f /粗糙/关rimco rimco2票据背书担保aval2
如果找到模式,最终目标将是通过删除该行来实现。
答案
这可能适合你(GNU sed):
sed 's#/#\/#g;s#.*#/&/p#g' patternFile | sed -nf - file1 file2 file3 ...
将patternFile转换为sed脚本并针对数据文件运行它。
注:首先引用sed分隔符/
,并将patternFile的每一行转换为打印/pattern/p
的地址。
另一答案
试试这个:
cmd=$(
echo -n "sed -i '"
while read -r line; do
echo -n "/$line/d;"
done < patternfile.txt
echo "'"
)
"$cmd" rimco rimco2 aval aval2
另一答案
以下是如何通过使用GNU awk进行就地编辑来高效且稳健地执行您想要的操作(假设您在regexpsfile
中的正则表达式列表并不大):
awk -i inplace 'NR==FNR{re=re sep "(" $0 ")"; sep="|"} NR!=FNR && $0~re{next} 1' regexpsfile rimco rimco2 aval aval2
以上是关于如何使用sed与模式文件和sed到位的主要内容,如果未能解决你的问题,请参考以下文章