1

我有一些类似下面的行保存到一个 txt 文件中:

 Mike Tyson    1    2    3    4    5
 Alì     1    2   3   4   5

每个不同的字段都用制表符分隔,但在第一个字段中,我可以只用空格分隔 2 个单词。我怎样才能对 awk 有正确的解释?我只想要这样的标签分隔的值:

 $a=mike tyson
 $b=1
 $c=2
 etc etc....

现在,我正在使用一个while循环来读取每一行,完成

 done < <(awk 'NR>0' file.txt)

但是此命令将值“mike tyson”视为两个不同的字段。

4

2 回答 2

3

尝试更改为:

done < <(awk -F"\t" 'NR>0' file.txt)

awk 确实将任何空格(空格和制表符)视为归档分隔符。将其设置为仅选项卡,防止它用空间划分文件。

于 2013-10-17T20:44:06.887 回答
1

问题不在于awk,因为您正在解释bash.

也许你正在寻找这样的东西:

IFS=$'\t'
while read a b; do
    echo a=$a
    echo b=$b
done < file.txt

顺便说一句,在您的示例代码awk中似乎没有任何作用。

于 2013-10-17T21:07:08.720 回答