我有一个包含多行逗号分隔字段的数据文件,如下所示:
United Kingdom, GB, +44
Run Code Online (Sandbox Code Playgroud)
我想为文件中的每一行生成以下输出:
United Kingdom, GB, +44
Run Code Online (Sandbox Code Playgroud)
我使用 awk 得到了如下结果,但是在添加尖括号后,我得到了错误的输出:
<option value="GB">United Kingdom +44</option>
Run Code Online (Sandbox Code Playgroud)
小智 5
printf在嵌入引号时,awk 的函数可以更容易使用。
awk -F, '{printf("<option value=\"%s\">%s %s</option>\n", $2, $1, $3)}'
Run Code Online (Sandbox Code Playgroud)
问题是每个字段之间也有空格。我们可以使用该gsub函数来修剪每个字段。
awk -F, '{gsub(/^ +| +$/,"", $2); printf("<option value=\"%s\">%s %s</option>\n", $2, $1, $3)}'
Run Code Online (Sandbox Code Playgroud)
或者更简单的是更改我们的字段分隔符: awk -F' *, *' '{printf("%s %s\n", $2, $1, $3)}'
如果您需要修剪多个字段,那么最好使用循环或函数(视情况而定)。有关更多信息,请参阅/sf/ask/698986991/。