替换 shell 变量中的字符
Replace characters in shell variable
嗨,我有一个像这样的 shell 变量
input="/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk/"
我想像这样将最后一部分 'risk' 替换为 'risk_unzip'
/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk_unzip/
我这样试过
output="$( echo -e "$input" | tr 'risk' 'risk_unzip' )"
不适合我。任何帮助将不胜感激。
以下可能对您有所帮助。
echo "$input" | awk -F"/" '$(NF-1)=="risk"{$(NF-1)="risk_unzip"} 1' OFS="/"
如果您正在使用 bash:
output=${input/risk/risk_input}
如果您希望它与任何 Posix shell 一起使用(在这种情况下,bash 标签不正确),但您知道 risk
是最后一个组件:
output=${input%risk/}risk_input/
尝试使用 sed
,如下所示:-
input="/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk/"
input=$(echo "$input" | sed 's/risk/risk_unzip/g')
嗨,我有一个像这样的 shell 变量
input="/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk/"
我想像这样将最后一部分 'risk' 替换为 'risk_unzip'
/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk_unzip/
我这样试过
output="$( echo -e "$input" | tr 'risk' 'risk_unzip' )"
不适合我。任何帮助将不胜感激。
以下可能对您有所帮助。
echo "$input" | awk -F"/" '$(NF-1)=="risk"{$(NF-1)="risk_unzip"} 1' OFS="/"
如果您正在使用 bash:
output=${input/risk/risk_input}
如果您希望它与任何 Posix shell 一起使用(在这种情况下,bash 标签不正确),但您知道 risk
是最后一个组件:
output=${input%risk/}risk_input/
尝试使用 sed
,如下所示:-
input="/local/1/hadoop/MISDATA1/Risk_Analytics/blocker/risk/"
input=$(echo "$input" | sed 's/risk/risk_unzip/g')