我正在以size,name
格式阅读一个小型csv文件 - 每行一组。对于我的测试文件,我在csv文件中有两行。
如果我使用代码
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
文件。
我做错了什么?!
答案 0 :(得分: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