これが他の場所で回答されていた場合はお詫び申し上げます。検索を行ったところ、回答が見つかりませんでした。
大量のコンテンツを含むテキスト ファイルがあるとします。そのコンテンツには職業コードがあり、これは常に数字の後に大文字が続く形式です。
ファイルからoccコードのみを抽出するにはどうすればよいですか? 簡単に言えば、number-capital_letter パターンに一致しないファイル内のすべてを削除したいと考えています。
これが他の場所で回答されていた場合はお詫び申し上げます。検索を行ったところ、回答が見つかりませんでした。
大量のコンテンツを含むテキスト ファイルがあるとします。そのコンテンツには職業コードがあり、これは常に数字の後に大文字が続く形式です。
ファイルからoccコードのみを抽出するにはどうすればよいですか? 簡単に言えば、number-capital_letter パターンに一致しないファイル内のすべてを削除したいと考えています。
を使用して一致させることができます/(\d+[A-Z])/
ファイル内での occ コードの表示方法に応じて行単位または単語単位でスキャンするスクリプトを作成し、場合によっては REGEX を使用して一致をチェックし、それらを別のファイルに書き込むことは簡単な解決策です。
ドキュメント全体で単一の正規表現一致を使用して結果を反復処理することはできますが、ファイルのサイズによっては問題が発生する可能性があります。
これは、sed を使用して目的のコード以外のすべてを削除する大雑把な試みです。(私は「数値」を 1 つ以上の数字の文字列、小数点または先頭のマイナス記号を意味しないものと解釈していることに注意してください。)
sed -e 's/\([A-Z]\)[0-9]*/\1/g' -e 's/[0-9]*[^0-9A-Z]*//g' -e 's/[0-9]*$//' -e '/^$/d' < filename
最初のコマンドは、数字ではない大文字の後にあるもの (したがって、おそらく別のコードの先頭) を削除します。2 番目のコマンドは、数字の後に大文字以外の文字が続くものをすべて削除します。3 番目のコマンドは末尾の数字を削除し、4 番目のコマンドは空白を削除します。行。
私はいくつかのテストを実行しましたが、これはかなりうまくいくようです。誰かが失敗するケースを見つけることができれば、喜んで修正します。