Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 使用FPAT Var删除逗号后的空格_Awk - Fatal编程技术网

Awk 使用FPAT Var删除逗号后的空格

Awk 使用FPAT Var删除逗号后的空格,awk,Awk,这是我的密码 BEGIN { FPAT="([^,]+)|(\"[^\"]+\")" } { print "NF = ", NF for (i = 1; i <= NF; i++) { printf("$%d = <%s>\n", i, $i)} } 预期产量 NF = 3 $1 = <Johny Bravo> $2 = <Chief of Security> $3 = <417-555-66&g

这是我的密码

 BEGIN {
         FPAT="([^,]+)|(\"[^\"]+\")"
 }
 {
 print "NF = ", NF
 for (i = 1; i <= NF; i++) {
         printf("$%d = <%s>\n", i, $i)}
 }
预期产量

NF =  3
$1 = <Johny Bravo>
$2 = <Chief of Security>
$3 = <417-555-66>
NF=3
$1 = 
$2 = 
$3 = 

将我的评论转换为答案,以便将来的访问者能够轻松找到解决方案

您可以在
for
循环中调用
gsub
,以删除每个字段的前导空格和尾随空格

s='Johny Bravo, Chief of Security, 417-555-66'

awk -v FPAT='("[^"]+")"|[^,]+' '{
   for (i = 1; i <= NF; i++) {
      gsub(/^ +| +$/, "", $i)
      printf("$%d = <%s>\n", i, $i)
   }
}' <<< "$s"
s='Johny Bravo,安全总监,417-555-66'
awk-v FPAT='(“[^”]+”)|[^,]+'{
对于(i=1;i
NF =  3
$1 = <Johny Bravo>
$2 = <Chief of Security>
$3 = <417-555-66>
s='Johny Bravo, Chief of Security, 417-555-66'

awk -v FPAT='("[^"]+")"|[^,]+' '{
   for (i = 1; i <= NF; i++) {
      gsub(/^ +| +$/, "", $i)
      printf("$%d = <%s>\n", i, $i)
   }
}' <<< "$s"
$1 = <Johny Bravo>
$2 = <Chief of Security>
$3 = <417-555-66>