awk通过使用句点和输出唯一数字来解析字段

时间:2016-09-24 16:35:59

标签: awk

我正在尝试使用awk来解析$2使用字符串中的第一个.并输出带有其上方标题行的数字。当前输出很接近,但两个命令似乎也接受$1。我是否需要在命令中指定一些内容才能打印$2中的数字,它似乎很接近。谢谢你:)。

文件

R_2016_09_20_12_47
IonXpress_007 16-0001.xxx.xxx
IonXpress_008 16-0002.xxx.xxx
IonXpress_009 16-0003.xxx.xxx
R_2016_09_20_12_46
IonXpress_007 16-0004.xxx.xxx
IonXpress_008 16-0005.xxx.xxx
IonXpress_009 16-0006.xxx.xxx

所需的输出

R_2016_09_20_12_47
16-0001
16-0002
16-0003
R_2016_09_20_12_46
16-0004
16-0005
16-0006

AWK

awk -F. '{print $1}' file

cut -d'.' -f1 file

当前输出

R_2016_09_20_12_47
IonXpress_007 16-0001
IonXpress_008 16-0002
IonXpress_009 16-0003
R_2016_09_20_12_46
IonXpress_001 16-0004
IonXpress_002 16-0005
IonXpress_003 16-0006

1 个答案:

答案 0 :(得分:1)

试试这个:

% awk -F'[ .]' '{print $2 ? $2 : $1}' file                                                                     

R_2016_09_20_12_47
16-0001
16-0002
16-0003
R_2016_09_20_12_46
16-0004
16-0005
16-0006

注意

  • 我占用空间,.作为分隔符
  • 我使用三元运算符$2上创建条件