我正在使用 sed 替换多个文件中的许多行,但遇到了问题。我使用一个数组来给 sed 很多命令,但需要在搜索中包含几个空格以防止 sed 表单查找和删除太多行。代码:
( IFS='|'; sed -rie "/ ${points_r[*]};/d" io_points.dat4; )
两个空格和“;” 是为了帮助避免删除我不需要删除的行。这些行已被删除,所以我也尝试了这个:
( IFS='|'; sed -rie "/\s\{2,\}${points_r[*]};/d" io_points.dat4; )
我的 bash 版本是 3.2.25,sed 版本是 4.1.5。如何使用此数组搜索匹配项,但在搜索中包含空格(和“;”)?任何帮助将不胜感激!
编辑:样本输入
2; 14; 1;I; 0; 1; 0; 66
3; 14; 1;I; 0; 1; 0; 141
4; 14; 1;I; 0; 1; 0; 23
5; 14; 1;I; 0; 1; 0; 26
7; 14; 1;I; 0; 1; 0; 0
points_r 包含数字 3 4 和 5,我需要删除包含 3 的行;4;和 5;(第一列)但不是 2;或 7 个;(它们在第二列中包含 4)
输出将是:
2; 14; 1;I; 0; 1; 0; 66
7; 14; 1;I; 0; 1; 0; 0