我有一个以制表符作为分隔符的文本文件:
a 1 956 9723
b 2 2 11432
c 3 1307 2964
c 4 2 12586
d 5 1377 11726
e 6 1735 8416
f 7 1320 10443
g 8 1175 9240
h 9 1598 9357
i 10 1405 2066
我跟着nixCraft 上的示例提取第一列和最后一列:
while IFS="\t" read -r f1 f2 f3 f4
do
echo "$f1"
echo "$f4"
done < file.txt
它只返回整行。什么地方出了错?
系统:CentOS 7、bash 4.2
答案1
TAB=`echo 'x' | tr 'x' '\011'`; # tab
while IFS="$TAB" read -r f1 f2 f3 f4 junk; do
printf '$f1=<%s>\n' "$f1"
printf '$f4=<%s>\n' "$f4"
done