需要使用shell脚本显示csv文件中的值,逗号值



我使用粘贴命令合并了两个配置文件- paste -d, file1 file2>但是我在file1中有两个值,file2中有a=b,c和a=b,c,d的值。在csv文件中,c和d被显示在一个单独的字段中,需要帮助修复它,以便在单个字段中a=b,c应该显示。尝试过的方法有awk '{gsub(/,/,")};1' file1>但它显示为a=bc而不是a=b,c提前感谢!!

尝试过的方法有awk '{gsub(/,/,")};1' file1>但它显示为a=bc而不是a=b,c并试图逃避逗号/,但没有工作

没有file1和file2的例子,我希望我给你一个真正的问题的答案。我给出了三个解决方案,你可以改变一个解决方案来满足你的要求。
<(subcommand)

paste前面的完整行用双引号括起来
paste -d, <(sed 's/.*/"&"/' file1) <(sed 's/.*/"&"/' file2)

paste中使用特殊字符,paste完成后再修复。

paste -d'r' file1 file2 | sed -r 's/([^r]*)r(.*)/"1","2"/'

不要用paste,用awk连行

awk 'NR==FNR {a[FNR]=$0;next} {printf(""%s","%s"n",a[FNR],$0)}' file1 file2

编辑:当你在你的数据中使用双引号时,你必须首先复制这些引号。就像

paste -d, <(sed 's/"/""/g; s/.*/"&"/' file1) <(sed 's/"/""/g; s/.*/"&"/' file2)

paste -d'r' file1 file2 | sed -r 's/"/""/g; s/([^r]*)r(.*)/"1","2"/'

相关内容

  • 没有找到相关文章

最新更新