如何将awk和sed命令结合在一起

时间:2015-01-23 06:52:28

标签: shell awk sed

我有两个命令,

awk 'NR%2{printf $0 "      ";next}1' FileName        

sed '1d;' FileName .

我希望将这两个命令一起用作单个命令。我尝试使用|格式,它无法正常工作

示例IO

输入:

header
1
2
3
4
5

输出:

1   2
3   4
5

3 个答案:

答案 0 :(得分:1)

sed '1d;N;s/\n/   /'

1 sed相同。

  • 1d:删除行,如果它是输入的第一个(标题为你)。在d之后的sed循环,因此忽略下一条指令并在新的运行中处理下一行。
  • N:在当前缓冲区中加载一个新行(所以在它们之间有一行\n
  • s\n/ /:用多个空格替换新行
  • 打印此循环的结果
  • 重启流程,直到下一行文件结束。

答案 1 :(得分:0)

这个怎么样?

awk 'NR != 1 && !(NR % 2) {printf $0 "      "; next} 1' FileName | tail +2

答案 2 :(得分:0)

为什么不在一个命令中?这应该与awk

同时执行我们的请求
awk 'NR>1 && ORS=NR%2==0?"      ":RS' file
1      2
3      4
5