有人可以解释一下这个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:]]$//
以删除所有尾随空格。