我有一个4列和n行的制表符分隔文件。
我想找到第3列和第2列中存在的值的差异,并希望将它们存储在另一个文件中。
这就是我正在做的事情
cat filename | awk '{print $3 - $2}'>difference
它不起作用。我该如何改进代码?
解决方案:
我错过了关闭的单引号,我的眼睛如此调整到屏幕,我无法用35行代码弄清楚出了什么问题......出于沮丧,我在论坛上写了这个问题。 ..和[完成]错误的喜剧,我在这里[在]问题中写的语法是正确的(因为它包含两个单引号)。
谢谢大家的帮助。
答案 0 :(得分:3)
如果行中有其他空格,请设置字段分隔符。
BEGIN {
FS="\t"
}
答案 1 :(得分:2)
尝试使用-F
强制将分隔符作为标签并将
cat filename | awk -F"\t" '{print $3 - $2}' > difference
答案 2 :(得分:1)
试试这个:
cat filename | awk -F'^ T''{print $ 3 - $ 4}'>差
其中^T
是制表符分隔符(按Ctrl + V + T获取)
答案 3 :(得分:1)
有没有人在他们给出答案/ awk
打破白色空间而不仅仅是空格之前进行测试。
我刚刚这样做了:
awk '{print $3 - $2}' temp.txt
它完美无缺。
这是我的档案:
1 2 7 4
11 12 13 14
1 12 3 4
1 2 3 4
1 2 3 4
这是我的结果:
$ awk '{print $3 - $2}' temp.txt
5
1
-9
1
1
$
事实上,我使用了你的命令,得到了相同的结果?
你能解释一下哪些不适合你吗?您使用的是哪些数据,以及您获得的结果是什么?