file.txt的含有:

##w##

##wew##
使用MAC 10.6,bash外壳

,命令:

cat file.txt | grep [[:alpha:]]* -o

什么也不输出。我试图提取井号内的文本。我究竟做错了什么?

有帮助吗?

解决方案

(注意,这是更好的做法在这种情况下,以文件名作为参数传递,而不是到grep管道猫的输出到grep的:grep PATTERN file代替cat file | grep PATTERN

什么是您使用才能执行此命令的壳呢?我怀疑你的问题是,外壳解释星号作为通配符,并试图文件glob的

尝试引用您的图案,例如grep '[[:alpha:]]*' -o file.txt

我注意到,这工作正常使用grep这是我的Linux机器上的版本,但在我的Mac上的grep需要命令grep -E '[[:alpha:]]+' -o file.txt

其他提示

sed 's/#//g' file.txt

/SCRIPTS [31]> cat file.txt
##w##
##wew##

/SCRIPTS [32]>  sed 's/#//g' file.txt
w
wew

如果你有bash的> 3.1

while read -r line
do
  case "$line" in
   *"#"* )
        if [[ $line =~ "^#+(.*)##+$" ]];then
            echo ${BASH_REMATCH[1]}
        fi
  esac    
done <"file"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top