子音の後に「r」を見つけようとしていて、それをテキストファイル1.txtで削除しようとしています。私のコードは次のようになりますCygwinで正規表現を使用して検索と置換を行う方法
gregコマンドはCygwinの正規表現で使用されていますが、これはできません。
子音の後に「r」を見つけようとしていて、それをテキストファイル1.txtで削除しようとしています。私のコードは次のようになりますCygwinで正規表現を使用して検索と置換を行う方法
gregコマンドはCygwinの正規表現で使用されていますが、これはできません。
grep
は、入力ファイルで必要な正規表現パターンのみを検出します。これらのオカレンスを削除してファイルを編集する場合は、sed
を使用する方がよいでしょう。
ファイルがab
呼び出された場合は、これを試してみてください。
sed -i .bkp 's/r[^aeiou]//g' ab
sedで正規表現を使用できますか? .bkpとは何ですか?ありがとう – Coddy
このコマンドは元のファイル 'ab'の' ab.bkp'と呼ばれるバックアップファイルを作成します。 '-i'オプションは、バックアップファイルに与えたい拡張子を提供します。 –
'r [^ aeiou]'は正規表現です。だから、 'sed'は正規表現を許します。 –
'r' を削除しますか?子音を削除しますか?行を削除しますか? 「削除」を明確にしてください。
.*r[A-Z0-9]
が文書のどこかにある場合は、[^aeiou]
を[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
に置き換えることをおすすめします。ここで
私は3件の問い合わせにこれを分けてきたし、あなたが\ 1 \ 2 \ 3で好きなもので何でも戻ってテキストをもたらすことができます:SEDを使用して
sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\2\3/g' 1.txt
'R' 除去:sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\3/g' 1.txt
SEDを使用して* Rの除去:。sed 's/\(.*\)\(r\)\([^aeiou]\)/\3/g' 1.txt
子音除去SEDを使用して:sed 's/\(.*\)\(r\)\([^aeiou]\)/\1\2/g' 1.txt
のR [^ AEIOU]除去:sed 's/\(.*\)\(r\)\([^aeiou]\)/\1/g' 1.txt
ラインの除去使用して
SED:
:あなたは数字や記号を持つラインを持っている場合にはsed '/r[^aeiouAEIOU]/d' 1.txt
または下記、 sed '/r[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]/d' 1.txt
grepを使用した回線の削除:cat 1.txt | grep r[aeiouAEIOU]
以下、あなたは数字や記号を持つラインを持っている場合:grep(1)
は出力のみに入力行をフィルタとして
cat 1.txt | grep -v r[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
あなたは、間違ったツールを持って、あなたはに、sed(1)
を必要とします[rR][bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]
が発生する場所を編集します。
sed 's/[rR]\([bcdfghijklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]\)/\1/g'
は最初のr
またはR
消去されます。
sed 's/[rR][bcdfghijklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]//g'
あなたは 'grep'ではなく' sed'を使いたかったと思います。 'sed 'sを試してください。* \([^ aeiou] \)/ \ 1/g " –
はsedでも使えません – Coddy
サンプルテキストと置換後の出力を追加すると便利です。 – CoreyJJohnson