如何使用cut或awk完成指定部分的提取

我想要提取pwd输出路径中的部分路径。
比如pwd输出的路径为
/root/etc/A
或者
/root/etc/A/B

我希望将/root这一段去掉,赋给一个新变量,使新变量的值等于/etc/A或/etc/A/B
也就是说,无论pwd输出的路径是什么,都只将/root这段去掉,保留后面所有的路径。
请问该如何使用cut或awk命令实现?

阅读 6.8k
1 个回答

这样的需求利用sed或bash自身处理会更容易懂:

sed:

path_old=$(pwd)
path_new=$(sed 's#/root##' <<<${path_old})

bash:

path_old=$(pwd)
path_new=${path_old/\/root/}

当然cut和awk也能办到:

cut:

path_old=$(pwd)
path_new=$(echo $path_old|cut -c6-)

awk:

path_old=$(pwd)
path_new=$(echo $path_old|awk 'sub(/\/root/,"")')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题