file.txt包含:
##w##
##wew##
使用mac 10.6,bash shell,命令:
cat file.txt | grep [[:alpha:]]* -o
什么都不输出。我正在尝试提取哈希标志内的文本。我做错了什么?
答案 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"