我有一个包含
等记录的文件abc def, pqrm, tuv<linebreak>
qwe ett, tyr, rty<line break>
asd fgh, ghj, lkj<line break>
我从上面文件的第一列创建了一个数组,如下所示``
TokenName= ($( awk 'BEGIN {FS = ","}; {print $1}' <filename> ))
现在我在使用
访问元素时for tname in "${TokenName[@]}"
do
echo $tname
done
我期待输出为
abc def
qwe ett
asd fgh
但是打印输出为
abc
def
qwe
ett
asd
fgh
请建议如何解决
答案 0 :(得分:1)
Shell扩展确实发生在空白上。您可以通过逐行循环遍历文件并在数组中追加第一列来避免使用awk并在shell中执行此操作:
arr=()
while IFS=, read -r c1 _; do
arr+=("$c1")
done < file
然后测试输出数组:
declare -p arr # running this should emit the following line as output:
declare -a arr='([0]="abc def" [1]="qwe ett" [2]="asd fgh")'