2

大量の古い AS/400 コード (CL、COBOL など)を grep しようとしています。+コマンドが記号で次の行に「折り返される」場合があります。文字通り、識別子の途中で区切りをつけて、次の行に続けることができます。

例えば:

SELECT * FROM LIBR+
ARY/FILE

しかし、同じコードを次のように書くこともできます (この区切りはどこにでもある可能性があります)。

SELECT * FROM LI+
BRARY/FILE

この場合、'LIBRARY\/'その識別子を見つけるようなもので grep しようとします。

正規表現で改行を無視するのは簡単ですが、どうすれば+同様に無視できますか?

4

2 に答える 2

0

新しい行を無視できる場合は、プラス記号とそれに続く新しい行を無視できます;)プラスを正規表現文字としてエスケープすることを考えてください。

于 2012-08-02T19:57:29.290 に答える
0

sedと を使用した一方向grep:

< file.txt sed ':a;N;$!ba; s/+\n//g' | grep "LIBRARY/"
于 2012-08-02T22:56:00.963 に答える