温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux shell如何将多行文件转换为一行

发布时间:2022-01-21 11:26:57 来源:亿速云 阅读:2242 作者:小新 栏目:开发技术

这篇文章主要介绍了linux shell如何将多行文件转换为一行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

linux shell 将多行文件转换为一行

 1. 采用awk

      awk BEGIN{RS=EOF}'{gsub(/\n/," ");print}' file

      说明:awk默认将记录分隔符(record separator即RS)设置为\n,此行代码将RS设置为EOF(文件结束),也就是把文件视为一个记录,然后通过gsub函数将\n替换成空格,最后输出。

      2. 采用sed

      sed ':a ; N;s/\n/ / ; t a ; ' file

      说明:sed默认只按行处理,N可以让其读入下一行,再对\n进行替换,这样就可以将两行并做一行。但是怎么将所有行并作一行呢?可以采用sed的跳转功能。:a 在代码开始处设置一个标记a,在代码执行到结尾处时利用跳转命令t a重新跳转到标号a处,重新执行代码,这样就可以递归的将所有行合并成一行。

      3. cat file | xargs

       This manual page documents the GNU version of xargs. xargs reads argu-
       ments from the standard input, delimited by blanks (which can be pro-
       tected with double or single quotes or a backslash) or newlines

      上面是man手册对xargs的说明。其实xargs就是对shell命令行参数限制做的一个扩展。

      这条命令的含义也很简单,将file中的内容作为参数传给X程序

      如果用echo作为X程序,则命令为:

      cat file | xargs echo

      此命令和cat file | xargs 行为一致,因为xargs的默认行为就是打印输出。

4. yong tr 替换最后一个‘\n’ 为‘,’

cat 2232_1.txt | tr '\n' ',' 

感谢你能够认真阅读完这篇文章,希望小编分享的“linux shell如何将多行文件转换为一行”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI