使用sed修剪stdout的开头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sed修剪stdout的开头相关的知识,希望对你有一定的参考价值。

我正在编写一个小脚本来列出在macos系统中共享的所有目录。 Macos有一个名为sharing -l的简单工具,它将列出与sharing -l | grep path结合后的所有路径。问题是输出如下所示:

path: /Volumes/Storage A/File Server/

而我需要它看起来像这样

/Volumes/Storage A/File Server/

所以白色空间需要被转义,并且行的开头有路径:并且需要修剪空白区域。我现在一直在用sed乱搞几个小时,但我只是不知道它在一个命令中做到这一点。我希望在sharing -l | grep path的末尾添加一些东西

答案

你可以用这个:

sharing -l | sed -En '/^path:/{ s/^path:[[:blank:]]*//; s/[[:blank:]]+/\&/g; p;}'
另一答案

你可以尝试一下吗?

sharing -l | awk '{$2=$2"\";$3=$3"\";sub(/^path: +/,"")} 1'
另一答案

如果您不需要转义空格:

$ sharing -l | sed -n 's/^path:[[:space:]]*//p'
/Volumes/Storage A/File Server/

如果你这样做:

$ sharing -l |  awk 'sub(/^path:[[:space:]]*/,""){gsub(/[[:space:]]/,"\\&"); print}'
/Volumes/Storage A/File Server/

以上是关于使用sed修剪stdout的开头的主要内容,如果未能解决你的问题,请参考以下文章

如何修剪字符串的开头和结尾双引号?

使用 sed 在 linux 中查找以开头并替换的行 [重复]

Python字符串格式 - 限制字符串长度,但修剪字符串开头

linux—sed命令

无法使用Javascript或JQuery修剪对象属性

ActionScript 3 AS3从字符串的开头和结尾修剪空格