【发布时间】:2019-10-04 02:47:50
【问题描述】:
挣扎。请帮忙。
a="/var/www/test/some/page3.html"
我需要把它转换成
a="some/page3.html"
我在努力
a=$(sed "s~/var/www/test/~~g" $a)
但得到 baaaad 结果。
【问题讨论】:
-
试试
a=$(sed 's~/var/www/test/~~g' <<< "$a") -
谢谢!我像一盒石头一样笨
-
使用基于 PE 的修复程序效率更高,就像 Paul 展示的那样,并且避免使用进程替换(以及像
sed这样的外部工具)。另请参阅 BashFAQ #100 和 wiki.bash-hackers.org/syntax/pe -
请注意,heredocs 和 herestrings 会创建临时文件——如果您的
$TMPDIR位于内存支持的文件系统上,它可能非常高效,但它仍然不是免费的。 -
使用 awk:
a=$(awk -v FS='/' '{print $(NF-1) FS $NF}' <<< "$a")