【发布时间】:2019-08-27 00:56:48
【问题描述】:
我过去这样做没有问题,但这次我不能,我不明白为什么.....
我的原始文件是
1002 10214
1002 10220
1002 10222
1002 10248
1002 10256
我需要创建一个新文件,将上面的 2 列合并,并添加值为 1 的第二列
想要的输出应该是这样的
100210214 1
100210220 1
100210222 1
100210248 1
100210256 1
我尝试了以下 awk 命令,首先将 2 列打印为 1 到 tmp 文件中,然后添加带有“1”的额外列
cat input.txt | awk '{ print ($1$2)}' > tmp1.txt
cat tmp1.txt | awk ' {print $0, (1) }' > output.txt
虽然第一个命令似乎工作正常,但第二个命令却不行
tmp1.txt(确定)
100210214
100210220
100210222
100210248
100210256
output.txt(不正常)
10210214
10210220
10210222
10210248
10210256
“1”出现在第一列的前面,不知道为什么,甚至替换了前 2 个字符。是不是因为原来的输入文件不一样(可能是使用了“空格”而不是tab)?
【问题讨论】:
-
awk '{$1=$1$2;$2=1}1' file.txt
标签: awk columnsorting