問題タブ [select-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - Powershell LastWriteTime select-string -pattern を使用して一致する各項目
ファイルのリストを調べて、powershell で正規表現を使用して電話番号を解析しようとしていますが、各ファイルの LastWriteTime も含めたいと考えています。
私は現在これを使用していますが、最初の一致から必要な日付情報のみを取得しているようです
その結果、
これに関するアイデアは素晴らしいでしょう
@Mattが提供するソリューション
powershell-2.0 - ログ ファイルから一致する最新のエントリを検索する
1 日を通して絶えず書き込まれているログ ファイルがあります。ログファイルをチェックして、特定の文字列に一致する最後のエントリを見つける方法が必要です。
このエントリは、末尾から 5 行または 5000 行の可能性があります。
ログ全体を読むのは気が進まない (1 日の終わりには 60000 行を超える可能性がある)。
また、一致するすべてのエントリを取り出してから最後のエントリを取得したくはありません。実行中の場合、一致するエントリがログの 3 分の 1 を占める可能性があるからです。
Select-String
これまでのところ、すべての一致を配列に取得してから最後のものを取得するために使用(Get-Content xxx) [-1..-x]
するか、最後の x 行を取得するために使用することがわかりました。どちらも私が必要とすることを実際に行いません。
これまでに管理した最も近いものは次のとおりです。
しかし、これは最後の 5000 行しか読み取らないため、完全ではありません。結果が 5001 行目にある場合、失敗します。
powershell - Powershellはファイル内の変数内のテキストをチェックしますが、空白は無視します
私が PowerShell を使用してやろうとしているのは、構成ファイルでランダムな量の空白またはタブを含むテキストの文字列を検索することです
使用する
.replace(' ' , '')
空白を取り除くだけの見方に役立つかもしれないと思いました。ここには私よりも賢い人がたくさんいると思いました!
前もって感謝します
ナッティー
regex - PowerShell フィルター ステートメントのパフォーマンスの向上
HTTPアクセスログを通過し、正規表現パターンに基づいていくつかの行を除外し、それらを別のファイルにコピーするスクリプトがあります:
ログは非常に大きく (最大 2 GB)、実行に最大 15 分かかります。上記のステートメントのパフォーマンスを改善するためにできることはありますか?
ご感想ありがとうございます!
powershell - Powershell Select-String リスト メッセージ ID のみ
「WARNING」というパターンを含むいくつかのログ ファイルを検索しています。
出力は次のとおりです。
リストのみを表示したいのですがMsgId: 577C40D906A5481F7E3D31E73CBA2931F7FB744372C5F29B00
、どうすればよいですか?
powershell - PowerShell Select-String 内での変数の使用
PowerShell スクリプトのこの 1 つのセクションで、現在立ち往生しています。基本的に、選択文字列を介して比較したい2つのファイルがあります...詳細
FileA.txt の各項目について、FileB.txt に対して選択文字列を実行して、存在するかどうかを確認したいと考えています。FileA.txt の項目が FileB.txt に存在しない場合は、FileA.txt の項目を画面に出力します。
これは、テキストファイルがどのように見えるかです..多かれ少なかれ
FileA.txt
FileB.txt
望ましい出力は次のようになります。
これは、私の PS コードが現在どのように見えるかです。私の思考プロセスは、選択文字列内で変数を使用できるということでしたが、うまくいきません:(
誰かが私を助けて、私が間違っていることを指摘してください。
regex - Select-String の -Pattern の最後でグループのキャプチャが機能しない
最近、Powershell で正規表現を使い始めたところ、Select-String コマンドレットから予期しない応答が返されました。
次のようなものを入力すると、次のようになります。
Match-Info オブジェクトから期待される結果を受け取ります。
ただし、キャプチャ グループを -Pattern の最後に配置すると、次のようになります。
1 つが作成されますが、Match-Info は何も見つけられないようです。
私が言ったように、私は Powershell にまったく慣れていないので、この動作はオペレーターのエラーだと思います。
しかし、回避策は何ですか?この動作はまだ問題を引き起こしていませんが、私が扱っているファイル (XML ファイルに含まれる電子マニュアル) を考慮すると、最終的には問題になると思います。
...
よろしく、
シュベルト
...
説明:
動作を説明するために例を非常に単純にしましたが、最初の問題は次のパターンにありました。
このファイルはマニュアル間のリンクのインデックスの 1 つであり、リンクの名前はファイルの各行にあるコメント ブロック内に含まれています。
名前とコメントが行末まで表示されていないため、このパターンは実際にはタイプミスです。プログラムが Match-Info オブジェクトで「linkname」を見つけられなかったときにエラーを出し始めたときに、私はそれを見つけました。
リンク名の後に出現する文字 ( ::
) を指定すると、正しく機能しました。それを例に入れる:
regex - -SimpleMatch を Select-String とともに使用すると一致がキャプチャされない
一部の XML ノード内のテキストを解析するために正規表現を使用しています。ただし、 with を使用する-SimpleMatch
とSelect-String
、MatchInfo オブジェクトに一致が含まれていないように見えます。
この動作が正常であることを示すものをオンラインで見つけることができません。それが私のPowershellインストールであるかどうか疑問に思っています。(参考までに、私が使用しているコンピューターには Powershell 3.0 がインストールされています。)
非常に単純な例を使用すると、正規表現のパターン化を使用すると、予想される MatchInfo オブジェクトを返すことができます。
ただし、-SimpleMatch
パラメーターを追加しても、MatchInfo オブジェクトの Matches プロパティは返されないようです。
MatchInfoオブジェクトが返されたこと$c
を確認するためのパイプ:Get-Member
パターンやラインワークなどのその他のプロパティ:
また、インデックス値を Matches 配列に送信してもエラーは発生しません。
結果をどのように解釈すればよいか、また、なぜそれが起こっているのかはわかりません。
正規表現の特殊文字 () を含む文字列を何度も検索しなければならないため、この動作には問題があります。
例を拡張します。
$c.Matches
$c
正規表現パターンで括弧を使用しているため、何も返さず、それ自体は null です。
を使用-SimpleMatch
すると MatchInfo オブジェクトが生成されますが、一致するものは返されません。
私が見つけた回避策 (ここで SO) は、.NET から Regex.Escape メソッドを使用することです:
(参照: Powershell select-string fails due to escape sequence )
この回避策により、期待される一致が から返されるSelect-String
ため、スクリプト作成を続行できました。
しかし、パラメーターを使用したときに一致が返されない理由が気になり-SimpleMatch
ます。
...
よろしく、
シュベルト