0

我使用以下行从字符串创建字段数组:

var=$(echo $FieldName | awk -F";" '{print $1,$2,$3,$4,$5,$6,$7,$8,$9}')

$FieldName是一个字符串,其字段由分号分隔。

$FieldName包含没有空格的字符串时,它的行为正确。问题是当它包含任何嵌入的空格字符时,脚本会将空格视为换行符。

例如:

$FieldName = aa;bcd;cal;da;ea;fa;ga;ha;ia

给出了[aa,bcd,cal,da,ea,fa,ga,ha,ia]预期的结果。

$FieldName = aa;bcd;cal;da;ea;fa;ga;ha;ia <= ia2

[aa,bcd,cal,da,ea,fa,ga,ha,ia] , [<=, , , , , , , , ] and [ia2, , , , , , , , ]

有任何想法吗?

4

2 回答 2

2

你不需要awk

IFS=\;
set $FieldName
var=$@
于 2012-09-10T10:18:08.127 回答
1

您似乎正在尝试更改 的分隔符$FieldName,在这种情况下使用awk如下:

echo "$FieldName" | awk -v FS=',' -v OFS=';' 1

执行1默认块:{ print $0 }.

或者tr

echo "$FieldName" | tr ';' ','    

输出:

aa,bcd,cal,da,ea,fa,ga,ha,ia <= ia2
于 2012-09-10T12:41:01.493 回答