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>