0

パターンマッチの後にすべての文字を抽出する必要があります。

例えば ​​、

NAME=John

Age=16

「=」の後のすべての文字を抽出する必要があります。出力は次のようになります

John

16

いくつかの制限があるため、この目的のために perl や Jython を使用することはできません。私は grep を試しましたが、私の知る限り、以下に示すようになりました

echo "NAME=John" |grep -o -P '=.{0,}'

4

2 に答える 2

0

あなたはかなり近かった:

grep -oP '(?<=\w=)\w+' file

それを作ります。

説明

その後の単語を探してword=出力します。

  • -oは、「一致する行の一致した (空でない) 部分のみを出力し、そのような各部分を別々の出力行に出力する」の略です。
  • -Pは「PATTERN を Perl 正規表現として解釈する」の略です。
  • (?<=\w=)\w+意味:\w+次の のみに一致しますword=。詳細については、[Regex チュートリアル - 先読み][1] および [sudo_O によるこの素晴らしい説明][2] を参照してください。

テスト

$ cat file
NAME=John
Age=16
$ grep -oP '(?<=\w=)\w+' file
John
16
于 2013-06-20T09:45:37.413 に答える