博客园  :: 首页  :: 管理

shell中文本内容多行变一行的技巧

Posted on 2015-01-19 15:17  520_1351  阅读(6606)  评论(0编辑  收藏  举报

在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表示合并成一行