これが私のスクリプトです:
#!/bin/bash
for i in *.csv
do
echo "i: $i"
THE_FILE2="$i-2.csv"
file_read()
{
lineno=0
while read line
do
echo $line | awk -F, '{print $1","$2",,,"$3","$4}'
((lineno++))
done
} < $i > $THE_FILE2
echo "the_file2: $THE_FILE2"
echo "end"
done
file_read
出力:
i: 2992.csv
the_file2: 2992.csv-2.csv
end
i: 5415.csv
the_file2: 5415.csv-2.csv
end
i: csa.csv
the_file2: csa.csv-2.csv
end
i: loc.csv
the_file2: loc.csv-2.csv
end
i: visa.csv
the_file2: visa.csv-2.csv
end
$ ls
2992.csv csa.csv transform.sh visa.csv-2.csv
5415.csv loc.csv visa.csv
残念ながら、リストの最後のファイルに対してのみ実行します。他のすべてをスキップしています。これは、バッファリングやグロビングなどと関係があると感じています。私は何が欠けていますか?