Awk 如何使用with SED编辑Linux文件中的特殊字符?
文件名:File.txt 内容: 结果应该随之而来,Awk 如何使用with SED编辑Linux文件中的特殊字符?,awk,sed,Awk,Sed,文件名:File.txt 内容: 结果应该随之而来, "Vignesh", "Mani", "Bani", "Ravi" 有人能帮我吗?我怎样才能得到预期的结果 我试过这个命令 sed -e 's/^ /" ",/g' File.txt 它不起作用了。请告诉我。我会使用awk: awk -v OFS=", " -v q='"' '{for(i=1;i<=NF;i++)$i=q $i q}7' file 第一种解决方案:如果您的实际输入文件与所示示例相同,则以下内容可能会对您有所帮助
"Vignesh", "Mani", "Bani", "Ravi"
有人能帮我吗?我怎样才能得到预期的结果
我试过这个命令
sed -e 's/^ /" ",/g' File.txt
它不起作用了。请告诉我。我会使用awk:
awk -v OFS=", " -v q='"' '{for(i=1;i<=NF;i++)$i=q $i q}7' file
第一种解决方案:如果您的实际输入文件与所示示例相同,则以下内容可能会对您有所帮助
awk -v s1='"' -v s2=',' '{gsub(/ /,s1 s2 OFS s1);gsub(/^|$/,s1)} 1' Input_file
第二种解决方案:
这可能适用于GNU sed:
sed 's/\S\+/"&"/g;s/\s\+/, /g' file
用双引号将非空格括起来。用逗号后跟空格替换每组空格 你忘了,我没有。添加-如果OP不小心,我会使脚本不可移植,并且能够损坏输入文件,并且问题中没有迹象表明OP希望更改输入文件,而不仅仅是输出修改后的文本。@EdMorton非常感谢。它真的很棒,满足了我的预期结果。非常感谢。太完美了。
awk -v s1='"' -v s2=',' '{gsub(/ /,s1 s2 OFS s1);gsub(/^|$/,s1)} 1' Input_file
awk -v s1='"' 'BEGIN{OFS=s1", "s1} {gsub(/^|$/,s1);$1=$1} 1' Input_file
sed 's/\S\+/"&"/g;s/\s\+/, /g' file