如果bash中不存在前缀,则为每行的每个单词添加前缀



我有一个输出CSV文件,如下所示,如果CSV文件中不存在mrt WORD,则需要添加前缀。

mrt/abc .1, mrt/def .3, mrt/mlz .4, mrt/gyt .5, abc-d .6, lbr-e .7,

请告知。

假设:您想要添加"mrt/";到任何缺少前缀的字段

使用perl一行代码:

perl -pe 's{, (?!mrt/)}{, mrt/}g' file.csv

使用bash:

IFS=","
while read -ra fields; do
fields=("${fields[@]/# /}")
for ((i=0; i<${#fields[@]}; i++)); do
[[ ${fields[i]} == mrt/* ]] || fields[i]="mrt/${fields[i]}"
done
echo "${fields[*]}"
done < file.csv

输出

mrt/abc .1,mrt/def .3,mrt/mlz .4,mrt/gyt .5,mrt/abc-d .6,mrt/lbr-e .7

最新更新