Unix 基于以2个字符和数字开头的模式使用sed筛选文本
我有一个不断改变格式的文件,但它总是包含我需要检索的模式 以下是示例文件的几行:Unix 基于以2个字符和数字开头的模式使用sed筛选文本,unix,sed,awk,Unix,Sed,Awk,我有一个不断改变格式的文件,但它总是包含我需要检索的模式 以下是示例文件的几行: 1 PL000000002002695895 611 1/11/2013 2 PL000000002002785424 359 7/11/2013 3.-PL000000002002121651 11 DAY 24/11/2013 4.-
1 PL000000002002695895 611 1/11/2013
2 PL000000002002785424 359 7/11/2013
3.-PL000000002002121651 11 DAY 24/11/2013
4.-PL000000002002343228 43 DAY 29/11/2013
5 PL000000002002232587 NEW 360 30/11/2013
我尝试使用这两个命令从列表#3和#4中筛选,但检索其他字段时仍然遇到问题
以下是我使用的命令:
awk 'substr($1,4,2) == "PL" {print substr($1,4)}' sample > sample2
上面的命令不会过滤行首的两位数
awk '{print $1}' sample | sed 's/^[[:digit:]]*\.\-//g' > sample2
这一个只适用于特殊情况
任何帮助都将不胜感激 为什么不检查第一个字段中是否存在
PL
awk 'index($1, "PL")' sample > sample2
为什么不检查第一个字段中是否存在
PL
awk 'index($1, "PL")' sample > sample2
不确定这是否是您想要的输出,但它可用于任何操作系统上的任何sed:
$ cat file
1 PL000000002002695895 611 1/11/2013
2 PL000000002002785424 359 7/11/2013
3.-PL000000002002121651 11 DAY 24/11/2013
4.-PL000000002002343228 43 DAY 29/11/2013
5 PL000000002002232587 NEW 360 30/11/2013
$
$ sed 's/.*\(PL[0-9]*\).*/\1/' file
PL000000002002695895
PL000000002002785424
PL000000002002121651
PL000000002002343228
PL000000002002232587
如果这不是您想要的,请在必要时使用更具代表性的输入更新您的问题,并确定一些预期输出。不确定这是否是您想要的输出,但它可以与任何操作系统上的任何sed一起使用:
$ cat file
1 PL000000002002695895 611 1/11/2013
2 PL000000002002785424 359 7/11/2013
3.-PL000000002002121651 11 DAY 24/11/2013
4.-PL000000002002343228 43 DAY 29/11/2013
5 PL000000002002232587 NEW 360 30/11/2013
$
$ sed 's/.*\(PL[0-9]*\).*/\1/' file
PL000000002002695895
PL000000002002785424
PL000000002002121651
PL000000002002343228
PL000000002002232587
如果这不是您想要的,请在必要时使用更具代表性的输入更新您的问题,并确定一些预期的输出。我尝试使用awk索引,但它没有提供任何结果,我想我使用的unix框已经完全过时。我想我应该从一开始就提到这一点,我在这个HP-UX设备中无法使用csh。我不知道这是否有帮助,但我也尝试过使用match,但没有任何结果。@sayayinx,关于
grep'^[^[:space:]\+PL'sample
?我运气不好,使用grep我没有收到任何输出:(我尝试过使用awk索引,但它没有提供任何结果,我想我使用的unix框已经完全过时了。我想我应该从一开始就提到这一点,我一直在HP-UX框中使用csh。我不知道这是否有帮助,但我也尝试过使用match,但我没有任何结果。@sayayinx,grep'^[^[:space:][\+PL'示例
?我运气不好,使用grep时没有收到任何输出:(非常感谢,这正是我要找的!非常感谢,这正是我要找的!