删除所有出现的 [[:space:]]* 和 #*

删除所有出现的 [[:space:]]* 和 #*

输入文件有以下行:

line1
##### 1592524754
   ### okoko
  ##  ### ##  sfsffsf

预期输出是:

line1
1592524754
okoko
sfsffsf

我只能在一个 sed 中替换一组 [[:space:]]* 和 #'shes

$ cat temp_file|sed 's/^[[:space:]]*//;s/^[[:space:]]*\#*//'
line1
 1592524754
 okoko
  ### ##  sfsffsf
$

$ cat temp_file|sed 's/^[[:space:]]*//;s/^[[:space:]]*\#*//;s/^[[:space:]]*//;s/^[[:space:]]*\#*//;s/^[[:space:]]*\#*//;s/^[[:space:]]*//'
line1
1592524754
okoko
sfsffsf
$

有没有一种简单的方法可以用一个 sed 过滤器删除所有内容?

答案1

^[[:blank:]#]*将匹配零个或多个水平空白或#字符,锚定到行的开头。

所以

$ sed 's/^[[:blank:]#]*//' temp_file
line1
1592524754
okoko
sfsffsf

相关内容