将整行复制/移动到上一行的末尾

将整行复制/移动到上一行的末尾

我有一个如下所示的文件:

/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

相关内容