次のファイルがあります。
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Thispeculiarpattern(0.73);thatpeculiarpattern(0.15);...................
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Somerandomtext(0.62); somemorerandomtext(0.04):..............
Herewegoagain(0.93);Herewegoyetagain(0.48);....
Herewegoagain(0.71);Herewegoyetagain(0.87);....
私は次の出力が欲しい:
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):....
Herewegoagain(0.71);Herewegoyetagain(0.87);....
つまり、「Thispeculiarpattern」、「Somerandomtext」、または「Herewegoyetagain」が含まれている場合は、すべての行をファイルに出力したい場合、その後に0.8以上の括弧を付ける必要があります。
ベストアンサー1
すべての数値が固定小数点10進数であるとします(例を参照)。
grepを使う
$ grep -E '(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....
sedを使う
$ sed -En '/(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])/p' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....
awkを使う
$ awk '/(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])/' file
Thispeculiarpattern(1.00);thatpeculiarpattern(0.90);....
Somerandomtext(0.81); somemorerandomtext(0.79):.................................
Herewegoagain(0.71);Herewegoyetagain(0.87);....
どのように動作しますか?
すべての場合に正規表現に一致する行を探します。
(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(([1-9]|0\.[89])
この正規表現は2つの部分に分けられます。最初のものは次のとおりです。
(Thispeculiarpattern|Somerandomtext|Herewegoyetagain)\(
上記は3つの文字列のうちの1つと一致し、その後に(
。
2番目の部分は次のとおりです。
([1-9]|0\.[89])
1から9までの数字で始まるすべての数字と一致します。または0.8
またはで始まる数字0.9