grepを使用した文字列の一部の抽出

grepを使用した文字列の一部の抽出

私のディレクトリに3つのファイルがあります

MYO144064T
MYO144064TA
MYO144064TX

数字と11番目の文字が変更されます。私のcshスクリプトからgrepを使って文字「A」と「X」を抽出したいと思います。

$ study変数はMYO144064と同じです。

これまで私が管理していたことは非常に面倒です。

ls | grep $study | cut -c 11 | sed 's/\///'

これは私に与える

A
X

最小限のフローで追加の空行なしでこれを行うにはどうすればよいですか?

ベストアンサー1

ls | grep -oP "(?<=$study.)[A-Z]$"

$studyT任意の文字(あなたの例では)の後に行末が続く大文字を返します。

この-Pオプション(Perl正規表現)は、前後の照会式を使用するために必要です(?<=...)が、一部のシステムおよびプラットフォームでは使用できない場合があります。

おすすめ記事