0

形式の小さなcsvファイルを読み込んでいますsize,name.1行に1セットです。私のテスト ファイルでは、csv ファイルに 2 行あります。

コードを使用する場合

while
        IFS=',' read -r size name
do
        printf "%s\n" "name"
done < temp1.txt

name各行の値が端末に出力されます。

コードを使用する場合

while
        IFS=',' read -r size name
do
        printf "%s\n" "name" > temp2.txt
done < temp1.txt

次に、最後のものだけがファイルnameに出力されtemp2.txtます。

私は何を間違っていますか?!

4

1 に答える 1

0

を使用し>ているため、ファイルは毎回切り捨てられます。代わりに、>>次を追加して使用します。

したがって、次のようになります。

        printf "%s\n" "name" >> temp2.txt
                             ^^

すべて一緒に:

while
        IFS=',' read -r size name
do
        printf "%s\n" "name" >> temp2.txt
done < temp1.txt

基本的な例:

$ echo "hello" > a
$ echo "bye" > a
$ cat a
bye                        # just last line gets written

$ echo "hello" >> a
$ echo "bye" >> a
$ cat a
hello
bye                        # everything gets written
于 2014-05-28T10:53:59.580 に答える