帮助grep [[:alpha:]] * -o

时间:2010-03-12 05:02:50

标签: regex bash grep alpha

file.txt包含:

##w##

##wew##

使用mac 10.6,bash shell,命令:

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

什么都不输出。我正在尝试提取哈希标志内的文本。我做错了什么?

3 个答案:

答案 0 :(得分:3)

(请注意,在这个实例中最好将文件名作为参数传递给grep,而不是将cat的输出传递给grep:grep PATTERN file而不是cat file | grep PATTERN。)

您使用什么shell来执行此命令?我怀疑你的问题是shell将星号解释为通配符并尝试使用glob文件。

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

如果你有bash> 3.1

while read -r line
do
  case "$line" in
   *"#"* )
        if [[ $line =~ "^#+(.*)##+$" ]];then
            echo ${BASH_REMATCH[1]}
        fi
  esac    
done <"file"