Awk 在特定字段中插入空格
如何仅在文件中的字段3中的字符串之间插入空格。 我可以使用命令Awk 在特定字段中插入空格,awk,sed,Awk,Sed,如何仅在文件中的字段3中的字符串之间插入空格。 我可以使用命令sed“s///g”,但这将在文件中全局执行。我只能为第3列做什么 假设输入为 A seq A1A2 B comb A1A2A3 我希望输出为 A seq A1 A2 B comb A1 A2 A3 有了您展示的样品,请尝试以下内容。使用GNUawk编写和测试 awk '{gsub(/../,"& ",$3);sub(/ +$/,"",$3)} 1
sed“s///g”
,但这将在文件中全局执行。我只能为第3列做什么
假设输入为
A seq A1A2
B comb A1A2A3
我希望输出为
A seq A1 A2
B comb A1 A2 A3
有了您展示的样品,请尝试以下内容。使用GNU
awk
编写和测试
awk '{gsub(/../,"& ",$3);sub(/ +$/,"",$3)} 1' Input_file
假设您想在第三列数字和字母之间的“间隙”中插入一个空格,使用
GNU awk
:
awk '{$3 = gensub("([[:digit:]])([[:alpha:]])", "\\1 \\2", "g", $3)} 1' file
如果您知道所有行上只有三个字段
awk '{printf($1 " " $2 " "); n=split($3,a,""); for(i=1; i <= n; i++) printf(a[i] " "); printf("\n")}' file
awk'{printf($1“$2”);n=split($3,a,”);对于(i=1;i@NEHA CHOUDHARY),您能告诉我我的解决方案对您是否有效吗?谢谢。
awk '{printf($1 " " $2 " "); n=split($3,a,"");for(i=1; i <= n; i++) printf(a[i] " "); $1="";$2="";$3="";print($0); printf("\n")}' file