Print Specific lines when found specific character

Hello all,

I have thousand file input like this:

file1:

 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 $$      |      |        |      |$$
 $$ UERT | TTYH |  TAFE  | FRFG |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1311 |    1 |$$
 $$    1 | DISK | TR1312 |    1 |$$
 $$    1 | DISK | TR1317 |    1 |$$
 $$    1 | DISK | TR1313 |    1 |$$
 $$    1 | DISK | TR1319 |    1 |$$
 $$    1 | DISK | TR1314 |    1 |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1315 |   UNU|$$
 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

file2:

 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 $$      |      |        |      |$$
 $$ UERT | TTYH |  TAFE  | FRFG |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1311 |    2 |$$
 $$    1 | DISK | TR1312 |    2 |$$
 $$    1 | DISK | TR1317 |    2 |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1315 |   UNU|$$
 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

file3:

 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 $$      |      |        |      |$$
 $$ UERT | TTYH |  TAFE  | FRFG |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
  $$    1 | DISK | TR1317 |    3 |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1315 |   UNU|$$
 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

.... file1000

Output that I want:

 $$    1 | DISK | TR1311 |    1 |$$
 $$    1 | DISK | TR1312 |    1 |$$
 $$    1 | DISK | TR1317 |    1 |$$
 $$    1 | DISK | TR1313 |    1 |$$
 $$    1 | DISK | TR1319 |    1 |$$
 $$    1 | DISK | TR1314 |    1 |$$
 $$    1 | DISK | TR1311 |    2 |$$
 $$    1 | DISK | TR1312 |    2 |$$
 $$    1 | DISK | TR1317 |    2 |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
 $$    1 | DISK | TR1311 |    3 |$$
 $$    1 | DISK | TR1312 |    3 |$$
  $$    1 | DISK | TR1317 |    3 |$$
.
.
.

Any help would be much appreciated.

  • Attila
$ nawk '/DISK/' *
$$ 1 | DISK | TR1311 | 1 |$$
$$ 1 | DISK | TR1312 | 1 |$$
$$ 1 | DISK | TR1317 | 1 |$$
$$ 1 | DISK | TR1313 | 1 |$$
$$ 1 | DISK | TR1319 | 1 |$$
$$ 1 | DISK | TR1314 | 1 |$$
$$ 1 | DISK | TR1315 | UNU|$$
$$ 1 | DISK | TR1311 | 2 |$$
$$ 1 | DISK | TR1312 | 2 |$$
$$ 1 | DISK | TR1317 | 2 |$$
$$ 1 | DISK | TR1315 | UNU|$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1317 | 3 |$$
$$ 1 | DISK | TR1315 | UNU|$$

---------- Post updated at 01:43 PM ---------- Previous update was at 01:42 PM ----------

$ nawk -F\| '/DISK/ && $4~/[0-9]/' *
$$ 1 | DISK | TR1311 | 1 |$$
$$ 1 | DISK | TR1312 | 1 |$$
$$ 1 | DISK | TR1317 | 1 |$$
$$ 1 | DISK | TR1313 | 1 |$$
$$ 1 | DISK | TR1319 | 1 |$$
$$ 1 | DISK | TR1314 | 1 |$$
$$ 1 | DISK | TR1311 | 2 |$$
$$ 1 | DISK | TR1312 | 2 |$$
$$ 1 | DISK | TR1317 | 2 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1317 | 3 |$$

Thank you itkamaraj,

but unfortunately I get other data like this:

file 401:

 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 $$      |      |        |      |$$
 $$ UERT | TTYH |  TAFE  | FRFG |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1311 |    2 |$$
 $$    1 | DISK | TR1312 |    2 |$$
 $$    1 | DISK | TR1311 |    2 |$$
 $$    2 | DISK | TR1312 |    2 |$$
 $$    2 | DISK | TR1311 |    2 |$$
 $$    2 | DISK | TR1312 |    2 |$$
 $$    2 | DISK | TR1317 |    2 |$$
 $$______|______|________|______|$$
 $$      |      |        |      |$$
 $$    1 | DISK | TR1315 |   UNU|$$
 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

and I won't print this part:

 $$    2 | DISK | TR1312 |    2 |$$
 $$    2 | DISK | TR1311 |    2 |$$
 $$    2 | DISK | TR1312 |    2 |$$
 $$    2 | DISK | TR1317 |    2 |$$ 

in other word specific string is:

1 | DISK 

not only :

DISK 

any idea?

$ nawk -F\| '$1~/ 1 / && $4~/[0-9]/ && $2~/DISK/' *
$$ 1 | DISK | TR1311 | 1 |$$
$$ 1 | DISK | TR1312 | 1 |$$
$$ 1 | DISK | TR1317 | 1 |$$
$$ 1 | DISK | TR1313 | 1 |$$
$$ 1 | DISK | TR1319 | 1 |$$
$$ 1 | DISK | TR1314 | 1 |$$
$$ 1 | DISK | TR1311 | 2 |$$
$$ 1 | DISK | TR1312 | 2 |$$
$$ 1 | DISK | TR1317 | 2 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1311 | 3 |$$
$$ 1 | DISK | TR1312 | 3 |$$
$$ 1 | DISK | TR1317 | 3 |$$
1 Like

Solved,

Thank you very much itkamaraj,