私のファイルには、input.txt
次のタブで区切られた形式のデータが含まれています。
23776112 Inactive Active
23415312 Inactive Active
要件に応じて、whileループ内で最初の列のデータを切り取り、次のように印刷したいと思います。
以下はコードの一部です -
......
......
while read line
do
SN=`echo ${line}|cut -d ' ' -f1`
echo $SN
done < input.txt
....
....
上記のタブ文字を区切り文字として使用するには、次のようにします。Ctrl V Tab
ただし、出力は予想とは異なります。私はO/Pを得た-
23776112 Inactive Active
23415312 Inactive Active
そして私はO / Pが次のようになります -
23776112 23415312
ベストアンサー1
cut -f 1 input.txt
これにより、タブ区切りファイルの最初の列が表示されますinput.txt
。デフォルトのフィールド区切り文字cut
はタブなので、追加の指定は不要です。
区切り文字が次の場合実際にスペース、用途
cut -d ' ' -f 1 input.txt
あることが判明したら多くの種類タブおよび/または空白の場合は、以下を使用してくださいawk
。
awk '{ print $1 }' input.txt
cut
この操作に使用するか、使用しているかにかかわらず、シェルループは必要ありませんawk
。
皆さんも見てください」シェルループを使用してテキストを処理するのはなぜ悪い習慣と見なされますか?」。
スクリプトが機能しない理由は、echo
引用符で囲まれていない変数を使用するとタブが消えるためです。
関連: