[解決済み】正規表現を使ってbashで検索と置換をする
2022-04-12 18:16:48
質問
このような例を見たことがあります。
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
この構文に従います。
${variable//pattern/replacement}
残念ながら
pattern
フィールドは完全な正規表現構文をサポートしていないようです (もし私が
.
または
\s
例えば,リテラル文字にマッチしようとする)。
完全な正規表現構文を使用して文字列を検索/置換するにはどうすればよいですか?
どのように解決するのですか?
使用方法 セッド :
MYVAR=ho02123ware38384you443d34o3434ingtod38384day
echo "$MYVAR" | sed -e 's/[a-zA-Z]/X/g' -e 's/[0-9]/N/g'
# prints XXNNNNNXXXXNNNNNXXXNNNXNNXNNNNXXXXXXNNNNNXXX
なお、後続の
-e
は順番に処理されます。 また
g
フラグを使用すると、入力に含まれるすべての表現にマッチします。
この方法で、perl や awk など、自分の好きなツールを選ぶこともできます。
echo "$MYVAR" | perl -pe 's/[a-zA-Z]/X/g and s/[0-9]/N/g'
これによって、よりクリエイティブなマッチングを行うことができるかもしれません...。 例えば、上の例では、最初の式がマッチしない限り、数値置換は行われません (怠惰な
and
の評価)。 もちろん、Perlの完全な言語サポートで、思い通りのことができる...
関連
-
[解決済み] 与えられた文字列が与えられた部分文字列を含んでいるかどうかを見つけるための、scala の慣用的な方法は何ですか?
-
[解決済み] Regex オプション文字にマッチさせる方法
-
[解決済み] Githubの「ブランチ名パターン」の否定
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] 正規表現における非捕捉グループとは何ですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] Bashでlsを使ってディレクトリだけをリストアップする?
-
[解決済み] vimでマッチを欲張らないようにするにはどうしたらいいですか?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】 正規表現文字列のエスケープ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Regexのオプショングループ
-
[解決済み] 正規表現で特定の単語を否定する方法は?重複
-
[解決済み] Atomで改行文字を置き換えるには?
-
[解決済み] (grep) 非 ASCII 文字にマッチする正規表現ですか?
-
[解決済み] 2回目以降で一致する
-
[解決済み] 01-12]レンジが期待通りに動作しないのはなぜですか?
-
[解決済み] 一致した正規表現パターンを awk で表示するには?
-
[解決済み] Regexクレジットカード番号テスト
-
[解決済み] この文字にマッチしない」という意味の正規表現演算子はどれ?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?