0

こんにちは、私は UNIX が初めてで、SED を使用してユーザー入力から句読点を削除するスクリプトを作成しようとしています。しかし、それは機能していません。

read -p "Please enter a word or sentence: " word
sed -n 's/[^a-zA-Z ]//g' $word

abcd.,abcd と入力すると、「sed: can't read abcd,.abcd: No such file or directory」というエラーが表示されます。

つまり、変数 $word を、処理したい文字列ではなくファイルとして扱っていることを意味していると思います。

どうすればこれを修正できますか?

4

2 に答える 2

2

sed引数を入力ファイルとして扱います。

代わりに次のことを試してください。

echo "$word" | sed -n 's/[^a-z]//ig'
于 2013-08-11T13:17:03.453 に答える
1

これはうまくいくかもしれません(bash):

sed 's/[^a-zA-Z ]//g' <<<"$word"

これはhere-stringin bash を利用します。

于 2013-08-11T21:38:54.983 に答える