shell中文本内容多行变一行的技巧
在linux下有时可能需要将多行的值转成一行。其实现的方法有很多种、笔者将自己曾经用过的方法在些分享。
如有一文本文件5201351.txt,文本的内容如下:
现我们可以通过如下方法将文本内容转成一行:
[root@5201351 ~]# xargs < 5201351.txt [root@5201351 ~]# cat 5201351.txt |xargs //方法一、通过xargs命令完成 [root@5201351 ~]# a=$(cat 5201351.txt);echo $a //方法二、整个文件读入一个变量,然后直接打印 [root@5201351 ~]# sed -n '1h;1!H;${g;s/\n/ /g;p;}' 5201351.txt //方法三、使用sed把文件读入保持空间,到最后一行时,替换换行符为空格符 [root@5201351 ~]# paste -d " " -s < 5201351.txt [root@5201351 ~]# cat 5201351.txt | paste -d " " -s //方法四、使用paste命令格式化打印,-d指定分隔符,-s表示合并成一行