我有很多编程经验,但我对awk很新。有些东西没有像我期望的那样表现。有人可以直截了当地说出来吗?
在linux上,我的命令: gawk -f do3 tmp6.txt
我的源文件do3
#!/bin/gawk -f
BEGIN {
FS="-"
}
{print "Two is " $2 "One is" $1 "zero is" $0}
我的输入文件,tmp6.txt
~BAND:3-10M
~MODE:2-CW
~QSO_DATE:8-20111130
~TIME_ON:6-175415
~eor-
~PFX:2-K4
~CQZ:1-5
~ITUZ:1-8
~eor-
我输出到控制台:
One is~BAND:3zero is~BAND:3-10M
One is~MODE:2zero is~MODE:2-CW
One is~QSO_DATE:8zero is~QSO_DATE:8-20111130
One is~TIME_ON:6zero is~TIME_ON:6-175415
One is~eorzero is~eor-
zero isOne is
One is~PFX:2zero is~PFX:2-K4
One is~CQZ:1zero is~CQZ:1-5
One is~ITUZ:1zero is~ITUZ:1-8
One is~eorzero is~eor-
zero isOne is
以第一行为例,我可以期待的是 在每一行中,我认为应该是开始的
Two is followed by the value assigned to $2, the value after the "-" in each line.
然而,在每种情况下都没有。
其他更复杂的案例表现出更加不同寻常的行为(如反向标签),但如果我能解决这一部分,也许这将有助于我理解其余部分。
提前致谢, JimR
答案 0 :(得分:3)
您的文件很可能在行尾包含^ M.在运行gawk
命令之前:
dos2unix tmp6.txt
将删除^ M个字符。