Dimitris Mintis Asked: 2019-05-17 00:52:02 +0800 CST2019-05-17 00:52:02 +0800 CST 2019-05-17 00:52:02 +0800 CST 更改列的格式 772 我在输入文件中有一个具有以下格式的列 H6 H7 O4 C4 H8 H9 O5 C5 H10 H11 我希望输出具有以下格式 "a H6" "a H7" "a O4" "a C4" "a H8" "a H9" "a O5" "a C5" "a H10" "a H11" 我试过到目前为止awk '{print "a "$1""}' filein > fileout 但输出不是我们想要的,因为我有一列缺少" ". awk sed 4 个回答 Voted Best Answer Romeo Ninov 2019-05-17T00:55:31+08:002019-05-17T00:55:31+08:00 您必须在 awk 中转义双引号。像这样的东西会做的工作 awk '{print "\"a "$1 "\" "}' filein > fileout Httqm 2019-05-17T00:55:34+08:002019-05-17T00:55:34+08:00 并在您的 awk 命令中使用printf而不是print输出到单行。 awk '{printf "\"a "$1"\" "}' inputFile > outputFile terdon 2019-05-17T01:03:33+08:002019-05-17T01:03:33+08:00 我会用sed这个: sed 's/^/"a /; s/$/"/' infile > outfile 这会产生: $ sed 's/^/"a /; s/$/"/' infile "a H6" "a H7" "a O4" "a C4" "a H8" "a H9" "a O5" "a C5" "a H10" "a H11" dedowsdi 2019-05-17T01:31:25+08:002019-05-17T01:31:25+08:00 sed 's/.*/"a &"/' data &是整个匹配的文本。
您必须在 awk 中转义双引号。像这样的东西会做的工作
并在您的 awk 命令中使用
printf
而不是print
输出到单行。我会用
sed
这个:这会产生:
&
是整个匹配的文本。