Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开

准备:

cat test.txt
1
3
4

示例:

cat test.txt | xargs
1 3 4

可以看出得到的字符串为空格隔开的。

再把上面的字符串用逗号隔开,可以使用tr命令进行空格的替换

cat test.txt | xargs | tr ‘ ‘ ‘,‘

不过tr命令只能替换单个字符,多个字符无法实现。

使用sed实现多个字符串的替换:

cat test.txt | xargs | sed /s/ /‘,‘/g

sed可以替换多个字符串,可以弥补tr的不足,后面g表示匹配多个。

总结:

替换和合并命令有很多,主要是看你怎么去解这道题,这里主要是基于xargs和tr实现的,当然,还可以使用sed命令去替换,sed命令支持多个字符串。

参考:

http://man.linuxde.net/xargs(xargs用法)

http://man.linuxde.net/tr(tr用法)

http://man.linuxde.net/sed(sed用法)

http://bbs.chinaunix.net/thread-1631249-1-1.html

原文地址:https://www.cnblogs.com/EasonJim/p/8319999.html

时间: 2024-10-08 23:08:21

Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开的相关文章

《linux 内核完全剖析》 笔记 由逻辑地址转换成线性地址代码分析

一开始由这段代码引发的纠结 get_base(current->ldt[1]) 下面是各个相关的代码,摘自不同的header files... current是指向当前task的指针 struct desc_struct ldt[3]; struct desc_struct { unsigned long a,b; } ; #define _get_base(addr) ({unsigned long __base; __asm__("movb %3,%%dh\n\t" &quo

Linux命令之dos2unix - 将DOS格式文本文件转换成UNIX格式 用途说明

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter).DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A.而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A.DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,.而Unix格式的文本文件在Windows下用Not

Linux下dd和od命令备份查看硬盘mbr,并用vim修改!

主引导记录(Master Boot Record,MBR),位于一个硬盘的0柱面.0盘面.1扇区,共512字节.具体划分依次为:引导代码区440字节.磁盘签名4字节.空白(Ox0000)2字节.MBR分区表(Disk Partition Table,DPT)64字节.结束标志(Ox55AA)2字节.其中的MBR分区表(DPT)区别于另一种“全局唯一标识分区表(GUID Partition Table,GPT)”.本文今天仅讨论MBR及DPT. 废话不多说了,下面先介绍如何备份.恢复MBR及DPT

Linux下时间戳格式和标准时间格式的转换

大家都知道linux文件系统中的每个文件都有三种时间戳: 访问时间(atime--access time):就是上次访问这个文件的时间. 改变时间(ctime--change time):就是文件的inode改变的时间(什么是inode?)当你往一个文件中添加数据或者删除数据的时候,修改文件所有者的时候,链接改变的时候,文件的ctime就会发生改变. 修改时间(mtime--modification time):就是文件的内容上一次发生改变的时候的时间. 在LINUX系统中,有许多场合都使用时间

ORACLE——将多行文本数据转换成一行

前几天项目中有个到处文件的功能,但是有一个字段存进的数据存在换行情况,导出来的数据会出现错乱的情况,所以需要把换行的数据转换成一行.当然也可以在java程序中实现. 数据库中的数据为: SQL> SELECT A.ADDRESS FROM T_USER_INFO A WHERE A.ID='001'; ADDRESS -------------------------------------------------------------------------------- 上海市 宝山区 同

小知识积累-linux下一些简单开发配置

系统环境为 redhat enterprise 6.x,主要是针对初学者在linux下用gcc和vi简单测试开发的一些配置 1.vi 自动换行 在终端下敲入vi命令打开文件 : vi ~/.vimrc 如果不存在这个文件会自动新建一个文件,输入i进入插入模式,将下面一行数据敲入文件中,然后依次按 esc:wq! 这些键保存文件 set cindent 也可以上面的cindent改为autoindent ,不过我个人感觉cindent更符合编程习惯. 因为~表示当前用户的主文件夹,所以进行如上操作

【转】Linux下的文本dos格式转Unix格式,去除^M符号

原文网址:http://blog.csdn.net/kobejayandy/article/details/13291525 问:我在Windows中通过FTP传一个文本文件到Linux中,但是打开文本文件后每行最后都有^M的标志.由于很长,用编辑器去除太麻烦,有什么解决办法呢? 答:为了解决这个问题,Linux下专门有两个工具可以互换Windows格式和Linux格式,它们分别是dos2unix和unix2dos.比如用下面的命令就可以将文件名为“filename”文件从Windows格式转换

Linux下的文本dos格式转Unix格式,去除^M符号

问:我在Windows中通过FTP传一个文本文件到Linux中,但是打开文本文件后每行最后都有^M的标志.由于很长,用编辑器去除太麻烦,有什么解决办法呢? 答:为了解决这个问题,Linux下专门有两个工具可以互换Windows格式和Linux格式,它们分别是dos2unix和unix2dos.比如用下面的命令就可以将文件名为"filename"文件从Windows格式转换为Linux文本格式. 正文: 在Linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件.我们会

Linux xargs将输出数据流转换成命令参数

200 ? "200px" : this.width)!important;} --> 介绍 我们可以利用管道将一个命令的“标准输出”作为另一个命令的“标准输入”:但是这里的标准输出都是数据流,但是某些命令的输入只接收参数命令不接收数据流,那么这种一般的方法就无法实现,这里就需要借助xargs命令.xargs可以将数据流转换成命令参数作为标准输入的参数,接下来就来详细了解xargs的用法. 多行转换 [[email protected] test]# cat test 0 1 2