Linux/Unix:Sed替代多种模式[查找和替换]
时间:2020-01-09 10:40:40 来源:igfitidea点击:
我使用日期+%D_%T将Unix系统的日期和时间存储在名为$_now的shell变量中:
_now = $(date +%D_%T)echo $_now
如何用_替换/和:?
我知道以下sed命令:
sed s/\//_/g > s/:/_/g
如何在同一sed命令中指定两个模式来替换|和:与_以便我可以输出为01_20_12_16_10_42?您可以使用以下任何一种sed替代查找并替换多个模式:
sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' < inputFile > outputFile out=$(sed -e 's/Find/Replace/g' -e 's/Find/Replace/g' <<<"$var")
或者
sed 's/Find/Replace/g;s/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g;s/Find/Replace/g' <<<"$var" sed -e 's/Find/Replace/g;s/Find/Replace/g' < inputFile > outputFile out=$(sed -e 's/Find/Replace/g;s/Find/Replace/g' <<<"$var")
示例:使用Singe命令行查找和替换Sed替代
_now="$(sed -e 's/\//_/g;s/:/_/g' <<<$(date +'%D_%T'))" echo $_now
输出示例:
01_20_12_16_22_21
这是另一个版本:
_now=$(sed 's/[\/:]/_/g' <<<$(date +'%D_%T')) echo "$_now"
输出示例:
01_20_12_16_24_42