我有一个来自http://snap.stanford.edu/data/cit-HepPh.html的2列文件。我下载的文件是 cit-HepPh.txt.gz 。我删除所有不是数字的字符(文件的前4行),然后我用一个简单的空格更改数字之间的标签空间:
awk '{print $1,$2}' Cit-HepPh.txt > 1
然后我试图反转文件中的元素并将它们写入另一个文件中。我用了
awk '{print $2,$1}' 1 > 2
但我获得的是
2
1
3
2
5
4
...
而不是像
这样的东西2 1
3 2
5 4
...
为什么?
我做了
head -2 Cit-HepPh.txt | od -a
我有回报
0000000 9 9 0 7 2 3 3 ht 9 3 0 1 2 5 3 cr
0000020 nl 9 9 0 7 2 3 3 ht 9 5 0 4 3 0 4
0000040 cr nl
0000042
这意味着什么?
答案 0 :(得分:3)
听起来文件中还有其他(非打印)字符
尝试发布
的输出head -2 Cit-HepPh.txt | od -a
头部将采取前两行输入od将打印每个字符(或其代码,如果它是非打印)
如果您发现问题,可以使用sed或awk
删除有问题的字符修改
你有一个行结束(即dos行结尾)你需要用dos2unix之类的东西去除它们,或者你可以用类似
的awk来做awk '{sub(/\r$/,"");print $2,$1}'
答案 1 :(得分:0)
我无法重现这个:
$ cat in.txt
1 2
2 3
4 5
$ awk '{print $1,$2}' <in.txt
1 2
2 3
4 5