我想在 bash 中的变量赋值行使用正则表达式
例如
oldip="14\.130\.31\.172"
oldip_a="14.130.31.172" << How to use regex to del all '\'? and assign to oldip_a
你有什么主意吗?
答案1
要删除\
,请使用 bash 参数替换。
//
意思是替换全部...(单个/
表示仅替换第一个)
//\\
表示替换所有\
(反斜杠)字符
/}
表示不替换任何内容(/
和结束之间没有任何内容)}
ip="14\.130\.31\.172"
echo "${ip//\\/}"
输出
14.130.31.172
或者,如果\.
在具有许多此类 IP 地址的文件中需要执行多次操作,则可以将每个修改值分配给一个数组项。
ip=($(printf '
172.31.130.14
14\.130\.31\.172
33\.135\.220\.0
' | sed 's/\\//g'))
for ((i=0;i<${#ip[@]};i++));do
echo "${ip[i]}"
done
输出
172.31.130.14
14.130.31.172
33.135.220.0
?! ..我刚刚注意到你的第二个数据项是第一个数据项的反转..这是你想要的输出吗? (可能不是,但这让我想知道)..