Unix 通过将搜索模式管道化到Sed中删除文件中的行

Unix 通过将搜索模式管道化到Sed中删除文件中的行,unix,sed,grep,aix,Unix,Sed,Grep,Aix,我们是否可以删除以下文件中的行 grep{SearchPattern}{file}| cut-c1-9 | Sed{file} 无论我在搜索什么,实际出现的行数都可能少于我要删除的行数。 我想实际搜索并获取前9个字符,然后再次搜索并删除输出中的任何行 我的输入文件如下所示 0002206993022 Enrollment Status Terminated 08/01/201412/31/9999 00

我们是否可以删除以下文件中的行

grep{SearchPattern}{file}| cut-c1-9 | Sed{file}

无论我在搜索什么,实际出现的行数都可能少于我要删除的行数。 我想实际搜索并获取前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

您可以搜索所有“终止”人员,并通过在第一列中取前9位数字来获取其ID。我想删除他们的所有记录,无论是支付状态、注册状态还是任何您想要的类似内容:

awk '/Terminated/{$0=substr($0, 1, 9);print "^" $0}' file | grep -vf - 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/{$0=substr($0, 1, 9);print "^" $0}' file | grep -vf - file
1003119343009999   Pay Status                    N/A                                     09/10/201405/28/2015
尝试(非GNUgrep):

测试:

$ 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/{$0=substr($0, 1, 9);print "^" $0}' file | grep -vf - file
1003119343009999   Pay Status                    N/A                                     09/10/201405/28/2015

请提供正确的输入数据和输出数据。@Mark,这有帮助吗?请你现在回答,这是输入。输出结果如何?很抱歉,至少对我来说,还不清楚您想要什么。我认为OPS希望找到所有终止人员的ID,并删除所有记录(也是
Pay Status
),从找到的ID.Excellant开始,但不幸的是,sysin的“-”在AIX中不起作用。我正在犯错误。“grep:无法打开-”谢谢,我需要在我的操作系统中找到stdin的路径。我选中了/bin/stdin、/etc/stdin、/dev/stdin。@Ahmad,试试:
/proc/self/fd/0
@Ahmad,或者试试:
grep-vf