【发布时间】:2019-11-06 09:42:39
【问题描述】:
我正在尝试将所有单词“null”替换为数组中的元素。问题是在替换了一个“null”之后,我想用数组中的下一个元素替换下一个“null”。
我不太擅长 bash,我觉得这是一个相当基本的问题。
这是我目前所拥有的:
for m in $(cat finalfile.csv)
do
if [ "$m" = "null" ]
then
m=cwearray[$counter]
let counter++
fi
done
这不会替换 finalfile.csv 中的任何内容。
例如,如果文件有:
"value1","value2","null","value3"\n
"value1","value2","null","value3"...
并且数组有 ["foo","bar"]
我希望它是:
"value1","value2","foo","value3"\n
"value1","value2","bar","value3"...
【问题讨论】:
-
您是否更改了字段分隔符?如果不是,则文件将在换行符上拆分。因此,您的 $m 将是整行。
-
我试图让它在每次遇到“null”时都回显“它的 null”,并且回显的数量是正确的,所以我认为 for 循环正确地找到了“null”值,只是没有改变它到数组中的元素
标签: arrays string bash replace str-replace