我想改變,而循環echo語句之前F3單元格的值如何使用shell腳本
Exec &> output.csv
file = "d:/aa.csv"
while ifs =','
read f1 f2 f3 f4 f5 f6 f7 f8
do
echo "$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8"
done < $file
我想改變,而循環echo語句之前F3單元格的值如何使用shell腳本
Exec &> output.csv
file = "d:/aa.csv"
while ifs =','
read f1 f2 f3 f4 f5 f6 f7 f8
do
echo "$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8"
done < $file
如果您想更改該值,請將其更改。修正錯誤:
while IFS=, read -r f1 f2 f3 f4 f5 f6 f7 f8
do
f3="something else"
echo "$f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8"
done < "$file" > output.csv
或
IFS=,
while read -ra fields; do
fields[2]="something else"
echo "${fields[*]}"
done < "$file" > output.csv
在你原來的csv中,每列值可能是雙引號格式。在這種情況下,您可以使用雙引號「」來更新f3。 f3 =「\」別的東西\「」 –
要在您的CSV使用這種改變f3
到A3
改變csv文件單元格的值sed命令:
sed -i.bak -r 's/^(([^,]+,){2})[^,]+(.+)$/\1A3\3/' aa.csv
隨着awk
:
awk 'BEGIN{FS=OFS=","}{$3="Whatever"}1' input.csv > output.csv
這可能爲你工作(GNU SED):
sed -ri 's/[^,]+/REPLACEMENT/3' file.csv
這改變的非逗號REPLACEMENT
第三occurence。
什麼是'ifs'?你的意思是寫'IFS'嗎? –
奇怪,你問這個。難道你不能把所需的價值而不是回聲f3? – devnull
不僅ifs,賦值運算符周圍的空間也會導致問題。 – devnull