gpt4 book ai didi

linux - bash 脚本,修改文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:21 24 4
gpt4 key购买 nike

这是我的脚本:

#!/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

不幸的是,它只对列表中的最后一个文件执行此操作。它跳过了所有其他的。我有一种感觉,这与缓冲或通配符或其他东西有关。我错过了什么?

最佳答案

您已在循环内定义了 file_read,然后从外部调用了它。

应该反过来吧!

您可能希望将一些值作为参数传递给 file_read

关于linux - bash 脚本,修改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12685478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com