タグ付けされた質問 「regular-expression」

正規表現は、文字列内の文字のパターンを照合する手段です。

2
grep:ファイル名を一度表示してから、行番号付きのコンテキストを表示します
ソースコードにはエラーコードが散在しています。grepを使用すると簡単に見つけることができますが、次の行に沿って出力を提供find_codeする(たとえばfind_code ####)実行できるbash関数が必要です。 /home/user/path/to/source.c 85 imagine this is code 86 this is more code 87 { 88 nicely indented 89 errorCode = 1111 90 that's the line that matched! 91 ok this block is ending 92 } 93 } 現在私が持っているものは次のとおりです。 find_code() { # "= " included to avoid matching unrelated number …

2
awkのフィールドセパレータとして正規表現を使用するには?
でフィールドセパレータとして正規表現を使用しようとしていますawk。私の読書から、これは可能に思えますが、構文を正しく取得できません。 rpm -qa | awk '{ 'FS == [0-9]' ; print $1 }' awk: cmd. line:1: { FS awk: cmd. line:1: ^ unexpected newline or end of string 考え?明らかでない場合の目標は、バージョン番号のないソフトウェアのリストを取得することです。

2
vim:置換コマンドで検索の文字列を使用
私は頻繁にvim /検索コマンドを使用して正規表現を確認します(一致するものを確認するためだけです)。その後、通常は:%sreplaceコマンドを使用します。このコマンドでは、検索からの正規表現を置換する文字列として使用します。たとえば、最初にそのような文字列を探します。 /TP-\(\d\{5\}\)-DD-\d\{3\} それは私が望むものと完全に一致するので、私は私の置き換えを行います: :%s/TP-\(\d\{5\}\)-DD-\d\{3\}/\1/g しかし、ここで正規表現全体をもう一度書く必要があります。通常、その正規表現ははるかに長いため、解決策を探しています: 検索パターンを直接replaceコマンドに貼り付けるための既存のショートカットまたはvimスクリプトはありますか? ターミナルでvimを使用します(gvimなし)。

2
ls --hide =およびls --ignore =の構文
ls --hideパーツのls --ignore後に設定された正規表現で定義されたファイルを除外する可能性を提供します--ignore=。後者は、このオプションがを介してオフにされないようにし-a, -Aます。コマンドmanおよびinfoページには、正規表現が記載されています。 質問:ls --hide=およびでサポートされているワイルドカードまたは正規表現ls --ignore=。 * $ ?POSIXブラケット式と同様に、サポートされているようだとわかりました。しかし、これは常に適切に機能するとは限らず、私にとっては試行錯誤のゲームです。ここで重要なものを見逃しましたか?


3
正規表現に基づいてテキストファイルを分割する
Yi Jingの64ヘキサグラムによると、64個の不均等な部分に分割したいテキストファイルがあります。各ヘキサグラムのパッセージは、数字、ピリオド、および2つの改行で始まるため、正規表現は非常に簡単に記述できます。 しかし、この正規表現に従って実際にテキストファイルを64個の新しいファイルに分割するにはどうすればよいですか?のタスクのようですperl。しかし、おそらく、私がまったく見逃しているもっと明白な方法があるかもしれません。

2
ファイル内のすべての行をsedで置換した、行内の最初のパターンの置換
1つのライナーでそれを行うことは可能ですか? 私はこのような出力を持っています: "First line" - Description " Second line" - Description "Third line" - Description " Fourth line" - Description この入力は自動的に生成されます。 行ごとに最初に出現する"(引用符+スペース)を"(引用符)に置き換えたい。置換をグローバルに適用すると、line" -toの出現line"-箇所もすべて変更されるので、これを実現するためにsed oneライナーを使用できるかどうか疑問に思いました。 ^このように使ってみました sed -r ':a;N;$!ba;s/(\^\" )/\"/g' しかし、それは機能しておらず、何も置き換えません。私は試した sed -r ':a;N;$!ba;s/(^|\" )/\"/g' そしてそれはすべての出現を置き換えます。私はsedを使い始めたばかりなので、何か間違っているのか本当にわかりません。 ここで何が欠けていますか?

3
bashはパラメーター展開で後方参照をサポートしますか?
私が持っているという名前の変数descrの文字列を含むことができBlah: -> r1-ae0-2 / [123]、-> s7-Gi0-0-1:1-US / Fooなど私が取得したい-> r1-ae0-2、-> s7-Gi0-0-1:1-US文字列から一部を。現時点ではdescr=$(grep -oP '\->\s*\S+' <<< "$descr"これに使用しています。これを行うためのより良い方法はありますか?パラメータ拡張でこれを行うことも可能ですか?

3
a-zA-Zを超える文字を含む単語に一致
単語を一致させるために使用できます \v(\w+) vimヘルプから:h \w: \ w単語文字:[0-9A-Za-z_] これは、マニュアルに記載されているとおりに機能します。ただし、a-zたとえば prästgårdenなどの文字を含む単語と一致させたい。正規表現\v(\w+)を prästgårdenと照合すると、代わりに3つの一致が得られます。 prästgården ^^ ^^^ ^^^^ を超える文字を含む単語を一致させるにはa-z?私のロケールは英語に設定されており、可能であればそのように保ちたいです。 編集:単語は単一のロケールに属さない場合があります。例えば prästgården treść


2
--exclude-dirフラグを指定したgrepを使用して複数のディレクトリを除外する
grepOSXで使用している単語をRuby on Railsアプリケーションで検索していますが、特定のパターンに一致するディレクトリを除外したいと思います。 私は次のコマンドを使用しています: grep -inRw -E 'direct' . --exclude-dir -E 'git|log|asset' このコマンドは、私が思っていたことを実行していません。私はそれがどのように働くと思ったのですか? i-大文字と小文字を区別しない検索 n-パターンが見つかった行番号を出力 R-再帰的に検索 w-単語全体のみが必要です。つまり、「ディレクトリ」ではなく「直接」に一致します。 -E-拡張正規表現を使用 'direct'-一致させたい正規表現 。-現在のディレクトリで検索 --exclude-dir -E 'git | log | asset'- git、log、またはassetと一致するディレクトリを除外します。 ディレクトリを除外するという点では、コマンドはまだで検索終わる「./git」と「./log」ディレクトリだけでなく、中に」./app/assets' 私は明らかに基本的な知識を欠いていますが、それが何であるかはわかりません。

4
sedで行末を検出する方法
を使用して、最後の文字が改行である場合にのみ置換を実行する方法を探していますsed。 例えば: lettersAtEndOfLine 置き換えられますが、これは次のようにはなりません lettersWithCharacterAfter& sedは改行ではうまく機能しないため、次のように単純ではありません。 $ sed -E "s/[a-zA-Z]*\n/replace/" file.txt どうすればこれを達成できますか?


2
Linuxレスポケベル(またはvim)でのネガティブな後読み/先読みのアサーション
を使用して、ログで.phpが後に続かない「インデックス」のすべてのインスタンスを検索したいless。 /index(?!\.php)動作しません。これは可能ですか?lessとvimの正規表現は何ですか(違いますか?)。これらのアプリケーションのそれぞれの正規表現ライブラリではこれは不可能ですか?

4
パイプをgrepする方法|
パイプ文字を含む行|または文字をgrepするにはどうすればよいですか>: files content: |this is test where is > this is none 今、私はgrepコマンドを使用して必要です grep -iE "<some expression>" file_name 出力: |this is test where is >

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.