我有一个如下所示的文件:
/path/to/a/very/long/path
0 0 0 0 0 0
我需要将以数字(可以是任何值,不一定是 0)开头的行移动到前一行的末尾,使其看起来像下面这样:
/path/to/a/very/long/path 0 0 0 0 0
答案1
某些awk
程序可以执行这样的工作:
awk '{if(NR%2==0) {print var,$0} else {var=$0}}' input_file >output_file
它使用awk
内部变量NR
,即当前行的行号。
以下是示例:
# cat qs
/path/to/a/very/long/path
0 0 0 0 0 0
/path/to/a/very/long/path
1 2 0 0 0 0
# awk '{if(NR%2==0) {print var,$0} else {var=$0}}' qs
/path/to/a/very/long/path 0 0 0 0 0 0
/path/to/a/very/long/path 1 2 0 0 0 0