我将以下几行保存到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....
现在,我正在使用一段时间来读取每一行,由
完成 done < <(awk 'NR>0' file.txt)
但是此命令将值“mike tyson”视为两个不同的字段。
答案 0 :(得分:3)
尝试更改为:
done < <(awk -F"\t" 'NR>0' file.txt)
awk确实看到任何空格(空格和制表符)作为提交的分隔符。 将其设置为仅选项卡,可防止它将文件与空格分开。
答案 1 :(得分:1)
问题不在于awk
,因为您正在解释bash
中的列。
也许你正在寻找这样的东西:
IFS=$'\t'
while read a b; do
echo a=$a
echo b=$b
done < file.txt
在您的示例代码中awk
似乎没有扮演任何角色。