![修复 sed 命令以有条件地包含字符](https://linux22.com/image/1318320/%E4%BF%AE%E5%A4%8D%20sed%20%E5%91%BD%E4%BB%A4%E4%BB%A5%E6%9C%89%E6%9D%A1%E4%BB%B6%E5%9C%B0%E5%8C%85%E5%90%AB%E5%AD%97%E7%AC%A6.png)
如果深度大于三级,我该如何改进pwd | sed -e 's/.*\/\(.*\)\/\(.*\)\/\(.*\)/...\1\/\2\/\3/'
才能返回省略号?pwd
目标是避免...home/example/foo
,但仍接收...example/foo/bar
。
答案1
pwd | sed -e 's/\/.*\/\(.*\)\/\(.*\)\/\(.*\)/...\1\/\2\/\3/'
为提高可读性,一个技巧是,当您需要使用大量斜杠时,使用另一个正则表达式分隔符:
pwd | sed -e 's#/.*/\(.*\)/\(.*\)/\(.*\)#...\1/\2/\3#'