这个 sed 命令是做什么的?

这个 sed 命令是做什么的?

有人可以解释一下这个sed命令想要实现的目标吗?

sed 's/^[[:space:]]*//;s/[[:space:]]*$//

我知道它正在从行的开头搜索空白字符,但我无法理解从//;s/[[:space:]]*$//

答案1

那里有两个s命令:sed可以采用以分号分隔的命令列表。您可以将相同的内容放入脚本文件中,如下所示:

s/^[[:space:]]*//
s/[[:space:]]*$//

另外,您s错误地解析了命令:s不是搜索, 这是代替:它需要两个参数,要匹配的字符串和用 ( ) 替换的字符串s/find/replace/

所以,s/^[[:space:]]*//意味着

s                (substitute)
/^[[:space:]]*/  (leading whitespace)
//               (with an empty string)

第二个命令的s/[[:space:]]*$//意思是用空字符串替换尾随空格

答案2

据我所知,这只是一个替代链。首先,它通过删除所有前导空格s/^[[:space:]]//,然后继续应用s/[[:space:]]$//以删除所有尾随空格。

相关内容