我正在尝试改进我的一行代码技巧,这是我目前拥有的。
$ echo $PATH
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
我想做的是去掉第一个块,以下是我目前所了解到的内容---
$ echo $PATH | sed -e "s|^/[A-Za-z/]*:||"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
我在这里想做的最后一件事就是将其放回到 PATH 中,例如 export PATH=[那个结果]
我尝试的方法如下,但无法实现 ---
$ echo $PATH | sed -e "s|^/[A-Za-z/]*:||" | xargs export PATH=
xargs: export: No such file or directory
另外,顺便提一下,让我困惑的另一个问题是关于上面的sed表达式,不知何故,当我尝试使用+而不是*时,它无法捕获第一部分。看一下 ---
$ echo $PATH | sed -e "s|^/[A-Za-z/]+:||"
/home/ubuntu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
这就像“+”表示“一个或多个”,但与“*”表示“许多”相比,“+”的效果不太好。
read PATH
-- 但这根本不是这里所需要的。 - Gordon Davissonread PATH < <(make_new_path)
。 - Gordon Davissonread -r
选项。 - janos