我尝试在同一命令行中使用剪切和粘贴,但不知何故不起作用。我有两个文件,fileA和fileB。
fileA
a b
c d
fileB
1 2 3 4
5 6 7 8我想删掉fileB的第二列和第三列。我通过下面的命令来完成这项工作。
cut -f 2-3 fileB在此之前,我想粘贴fileA中的列
paste fileA | cut -f 2-3 fileB > myNewFile所以myNewFile看起来就像
a b 2 3
c d 6 7我可以用两行代码来完成这项工作。
cut -f 2-3 fileB > part1
paste fileA part1 > myNewFile但相反,我想一口气完成这项工作。类似于
paste fileA | cut -f 2-3 fileB > myNewFile这不起作用。它只打印剪切命令,而不对粘贴执行任何操作。我如何才能在一个命令中完成这项工作?
谢谢。
发布于 2014-09-18 03:15:26
解决方案1:
paste fileA <(cut -f 2-3 fileB) > myNewFile解决方案2:
paste fileA fileB | cut -f1-2,4-5发布于 2013-08-01 09:28:46
听起来您可能需要join或paste命令。
下面显示了一个使用paste连接所有列的示例,然后是一些取自http://hintsforums.macworld.com/showthread.php?t=16618的用于过滤所需列的列操作命令:
$ cat foo
x1 y1
a1 b1
c1 d1
e1 f1
$ cat goo
x2 y2
a2 b2
c2 d2
e2 f2
$ paste foo goo
x1 y1 x2 y2
a1 b1 a2 b2
c1 d1 c2 d2
e1 f1 e2 f2
$ paste foo goo | column -t
x1 y1 x2 y2
a1 b1 a2 b2
c1 d1 c2 d2
e1 f1 e2 f2
$ paste foo goo | column -t | colrm 9 12
x1 y1 y2
a1 b1 b2
c1 d1 d2
e1 f1 f2发布于 2013-08-08 13:43:00
尝尝这个
paste fileA fileB | column -t | awk -F' ' '{print $1" "$2" "$4" "$5}'或者这个
paste fileA fileB | column -s' ' -t | sed 's/ \+ /\t/g' | sed 's/\t/ /g' | cut -d' ' -f1-2,4-5https://stackoverflow.com/questions/17982545
复制相似问题