grepのを助ける[:アルファ:[]] * -o
質問
file.txtをが含まれています:
##w##
##wew##
MAC 10.6、bashシェルを使用して、コマンド
cat file.txt | grep [[:alpha:]]* -o
何も出力しません。私は、ハッシュ記号内のテキストを抽出しようとしています。私が間違って何をしているのですか?
解決
(grepに猫の出力をパイプの代わりにgrepするための引数としてファイル名を渡すために、このインスタンスで良好慣行であることに注意してください。代わりgrep PATTERN file
のcat file | grep PATTERN
)を
どのようなシェルあなたは、このコマンドを実行するために使用していますか?私はあなたの問題は、シェルがワイルドカードとしてアスタリスクを解釈し、ファイルをグロブしようとしていることであると思われる。
例えば、あなたのパターンを引用してみgrep '[[:alpha:]]*' -o file.txt
ます。
私は、これは私のLinuxマシン上にあるのgrepのバージョンで正常に動作することに気付きましたが、私の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"
所属していません StackOverflow