IFS 読み取りは nixCraft の例として機能しません。

IFS 読み取りは nixCraft の例として機能しません。

タブを区切り文字として使用するテキストファイルがあります。

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

関連情報