【发布时间】:2012-02-17 17:23:39
【问题描述】:
在文本文档中,我想将每隔一行与下一行连接起来。我想 sed 是要使用的东西?这将如何实现?
【问题讨论】:
-
@MichaelJ.Barber:您链接的问题不同。 OP 不希望加入 每一行 行。
在文本文档中,我想将每隔一行与下一行连接起来。我想 sed 是要使用的东西?这将如何实现?
【问题讨论】:
这可能对你有用:
seq 10 | sed '$!N;s/\n/ /'
1 2
3 4
5 6
7 8
9 10
$! 如果不是最后一行,N; 将以下行追加到当前行,s/\n/ / 用空格替换第一个(第一行的)换行符。
【讨论】:
seq 11 | sed '$!N;s/\n/ /'
“在文本文档中”是什么意思?如果你用 vim 编辑文件,你可以这样做:
:g/./正常 J【讨论】:
awk解决方案:awk '{getline b;printf("%s %s\n",$0,b)}' file
[jaypal:~/Temp] seq 11 > file
[jaypal:~/Temp] awk '{getline b;printf("%s %s\n",$0,b)}' file
1 2
3 4
5 6
7 8
9 10
11
【讨论】:
【讨论】:
除非您真的坚持需要 sed,否则只需通过管道传输
paste -d" " - -
【讨论】:
ls | paste - - - - 暗示这是 POSIX,尽管我找不到明确说明的备注。请注意,对于文件,paste a a 复制了两次,可能是因为创建了两个文件描述符,而一个描述符用于标准输入。