Shell命令在文件

时间:2016-08-02 07:47:45

标签: shell

我正在寻找一个shell命令来删除两行中一行的返回战车。 我有这样一个文件:

1.32640997
;;P
1.14517534
;;P
1.16120958
;;P
...

我想要这样的事情:

1.32640997;;P
1.14517534;;P
1.16120958;;P
...

有可能吗? 感谢

3 个答案:

答案 0 :(得分:3)

使用GNU paste

paste -d '' - - < file

使用BSD paste

paste -d '\0' - - < file

paste从stdin生成两列,其中- -为参数,3列为- - -作为参数,依此类推。

-d用于指定列分隔符,使用'\0'表示没有分隔符。

使用Perl

perl -ne 'chomp($prev = $_); print $prev, scalar <>' < file

答案 1 :(得分:2)

使用awk

$ awk '{printf "%s%s",$0,(NR%2==0?ORS:"")}' File
1.32640997;;P
1.14517534;;P
1.16120958;;P

打印每一行,后面没有奇数行,或者后面是偶数行的输出记录分隔符。

使用sed

这可以通过成对阅读来实现:

$ sed 'N; s/\n//' File
1.32640997;;P
1.14517534;;P
1.16120958;;P

N读取下一行,s/\n//删除换行符。

答案 2 :(得分:0)

使用xargs:

xargs -n 2 -d '\n' printf '%s%s\n' <file