通过管道搜索模式到 Sed 中删除文件中的行
Delete lines in a file by piping search pattern into Sed
我们是否可以像下面这样删除文件中的行。
grep {SearchPattern} {文件} |切-c 1-9 | Sed {文件}
无论我搜索什么,实际上出现的次数都少于我要删除的行数。
我想实际搜索并获取前 9 个字符并再次搜索并删除输出中的任何行。
我的输入文件如下。
0002206993022 Enrollment Status Terminated 08/01/201412/31/9999
0003119343022 Enrollment Status Terminated 05/28/201512/31/9999
0003119343009999 Pay Status N/A 09/10/201405/28/2015
你可以搜索所有 "Terminated" 人并通过获取第一列中的前 9 位数字来获取他们的 ID。我想删除他们所有的记录,无论是支付状态还是注册状态等等
你想要这样的东西:
awk '/Terminated/{[=10=]=substr([=10=], 1, 9);print "^" [=10=]}' file | grep -vf - file
更新:
尝试(非 GNU
grep):
awk '/Terminated/{[=11=]=substr([=11=], 1, 9);print "^" [=11=]}' file | grep -vf /dev/stdin file
测试:
$ cat file
0002206993022 Enrollment Status Terminated 08/01/201412/31/9999
0003119343022 Enrollment Status Terminated 05/28/201512/31/9999
0003119343009999 Pay Status N/A 09/10/201405/28/2015
1003119343009999 Pay Status N/A 09/10/201405/28/2015
$ awk '/Terminated/{[=12=]=substr([=12=], 1, 9);print "^" [=12=]}' file | grep -vf - file
1003119343009999 Pay Status N/A 09/10/201405/28/2015
我们是否可以像下面这样删除文件中的行。
grep {SearchPattern} {文件} |切-c 1-9 | Sed {文件}
无论我搜索什么,实际上出现的次数都少于我要删除的行数。 我想实际搜索并获取前 9 个字符并再次搜索并删除输出中的任何行。
我的输入文件如下。
0002206993022 Enrollment Status Terminated 08/01/201412/31/9999
0003119343022 Enrollment Status Terminated 05/28/201512/31/9999
0003119343009999 Pay Status N/A 09/10/201405/28/2015
你可以搜索所有 "Terminated" 人并通过获取第一列中的前 9 位数字来获取他们的 ID。我想删除他们所有的记录,无论是支付状态还是注册状态等等
你想要这样的东西:
awk '/Terminated/{[=10=]=substr([=10=], 1, 9);print "^" [=10=]}' file | grep -vf - file
更新:
尝试(非 GNU
grep):
awk '/Terminated/{[=11=]=substr([=11=], 1, 9);print "^" [=11=]}' file | grep -vf /dev/stdin file
测试:
$ cat file
0002206993022 Enrollment Status Terminated 08/01/201412/31/9999
0003119343022 Enrollment Status Terminated 05/28/201512/31/9999
0003119343009999 Pay Status N/A 09/10/201405/28/2015
1003119343009999 Pay Status N/A 09/10/201405/28/2015
$ awk '/Terminated/{[=12=]=substr([=12=], 1, 9);print "^" [=12=]}' file | grep -vf - file
1003119343009999 Pay Status N/A 09/10/201405/28/2015