利用shell中awk和xargs以及sed将多行多列文本中某一列合并成一行--关于单引号和双引号的问题

本文介绍了如何利用Shell脚本中的tr、xargs和sed命令处理文本文件,具体包括删除换行符、替换空格为逗号以及添加双引号等操作,适用于初学者和需要进行批量文本处理的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1  既然sed不能修改换行符,那就是在使用sed之前,把换行符干掉。干掉换行符,可以使用tr和xargs命令。 

#使用xargs命令干掉换行符
awk '{print $2}' user1.txt |xargs 
#使用tr命令干掉换行符
awk '{print $2}' user1.txt |tr "\n" " "

 

2  使用sed命令将空格替换成",",命令如下:

awk '{print $2}' user1.txt |xargs |sed 's/ /","/g'

 

 

3  但是开头和结尾少了一个双引号,解决方案如下:

echo '"'`awk '{print $2}' user1.txt |xargs |sed 's/ /","/g'`'"'

 

4 同时需要注意  awk 在拼接截取的内容和  双引号 单引号  拼接  转义问题

{} 只能使用  单引号

awk -F '{print $1}'

单引号的转义

echo aaa | awk '{print "select * from A where name='\''TOM'\''"}'

 双引号的转义

echo "a a a" | awk -F" " '{print "select * from A where name=\""$2"TOM\""}'

 

转载地址:

http://www.findme.wang/blog/detail/id/310.html 

https://blog.csdn.net/wqq_721/article/details/7626201

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值