は、私はこのようなファイルを持っています。以前はcut
を使用していましたが、cut
コマンドに改行文字区切り文字を付けることができませんでした。どのようにすればいいですか?それは動作しません。このようにカットコマンド改行
:
cut -d'\n' -f1
任意の提案?
は、私はこのようなファイルを持っています。以前はcut
を使用していましたが、cut
コマンドに改行文字区切り文字を付けることができませんでした。どのようにすればいいですか?それは動作しません。このようにカットコマンド改行
:
cut -d'\n' -f1
任意の提案?
連結または表示するための使用cat
。ここでは必要ありません:
while read line ; do
echo "$line"
done < file
cat FILE|while read line; do # 'line' is the variable name
echo "$line" # do something here
done
か(コメントを参照してください):
while read line; do # 'line' is the variable name
echo "$line" # do something here
done < FILE
は[UUOC](http://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat)受け入れ読んラインのように、純粋なbashのソリューションです
これは役に立たないわけではありませんが、(おそらくこの段落を読んだ後に)無駄でしょうが、IMOも読みやすくなります。 – 0xC0000022L
私の意見では、 "カット"はデフォルトの区切り文字として '\ n'を使用しています。 あなたがカットを使用したい場合は、私は二つの方法があります。
cut -d^M -f1 file_cut
を私は^ Mによっては、Ctrlキー+ Vの後[Enter]をクリックしてください。別の方法があります
cut -c 1- file_cut
これは役に立ちますか?
残念ながら、上記のどれも私のために働いていませんでした(bash、バージョン4.2.45)。 –
私は同じ問題で自分自身を発見したが、これは私の作品:
cat file.cut | cut -d$'\n' -f1
または:単純に
cut -d$'\n' -f1 file.cut
これは私のためにうまく働いています:)ありがとう – Sina
を使用します。
echo -n `cut ...`
はこれがで\ nを抑制末尾
だから、som本当に良い(おそらく良い)回答がすでに提供されています。しかし、元の質問の表現を見て、BASH for-loopを使いたいと思っても、Field Separator IFSの変更に伴う解決策は誰にも言及されていませんでした。行われている間... `使う - それはちょうど
old_IFS=$IFS
IFS='\n'
for field in $(<filename)
do your_thing;
done
IFS=$old_IFS
私はこれに同意しますが、これは 'cut'アプローチよりも著しく遅いです。 –