【发布时间】:2018-02-23 15:22:56
【问题描述】:
如何在我的echo 的输出中删除809 前面的空格??
这是我的示例:
$ echo ' 809 23/Dec/2008:19:20'
809 23/Dec/2008:19:20
^^^3 spaces here preceding the 809
我可以使用 sed 删除 3 或 4 个空格:
...4 spaces here
$ echo ' 809 23/Dec/2008:19:20' | sed 's/^.\{3\,4\}//'
809 23/Dec/2008:19:20
0 spaces here preceding the 809
但我想要的是我的 sed 命令可以处理大于 3 的任何东西
.....5 spaces here
$ echo ' 809 23/Dec/2008:19:20' | sed 's/^.\{3\,4\}//'
809 23/Dec/2008:19:20
^1 spaces here preceding the 809
如何在 sed 中编写正则表达式以删除 809 之前的 3 个或更多空格?
【问题讨论】:
-
如果您想在开头删除 3 个或更多空格,请使用
sed 's/^[[:blank:]]\{3,\}//'。 -
也许
^\s{3,} -
一定要用sed吗? xargs 会自动删除空格。
-
你为什么在正则表达式中使用
.?这匹配任何字符,而不仅仅是空格。