【发布时间】:2021-07-18 13:28:17
【问题描述】:
我有一个超过 100k 行的文本文件。下面提到的数据是我拥有的文本文件的示例。我想对这些数据使用一些条件并删除一些行。文本文件没有标题(ID、NAME、Code-1、code、2-code-3)。我提过供参考。如何使用 shell 脚本实现这一点?
输入测试文件:
| ID | NAME | Code-1 | code-2 | code-3 |
| $$ | 5HF | 1E | N | Y |
| $$ | 2MU | 3C | N | Y |
| $$ | 32E | 3C | N | N |
| AB | 3CH | 3C | N | N |
| MK | A1M | AS | P | N |
| $$ | Y01 | 01 | F | Y |
| $$ | BG0 | 0G | F | N |
条件:
- 如果 code-2 = 'N' 且 code-1 不等于 ('3C' , '3B' , '32' , '31' , '3D' ) 那么 ID='$$'
- 如果 code-2 ='N' 和 code-1 等于 ('3C' , '3B' , '32' , '31' , '3D') 然后接受任何 ID 并且 (accept ID='$$ ' 仅当 code-3='Y')'
- 如果 code-2 != 'N' 则接受(ID='$$' only if code-3='Y')和所有其他 ID
输出:
| ID | NAME | Code-1 | code-2 | code-3 |
| $$ | 5HF | 1E | N | Y |
| $$ | 2MU | 3C | N | Y |
| AB | 3CH | 3C | N | N |
| MK | A1M | AS | P | N |
| $$ | Y01 | 01 | F | Y |
【问题讨论】:
-
欢迎来到 SO,请在您的问题中以代码的形式添加您的努力,这在 SO 上受到强烈鼓励,谢谢。
-
@sunanda p - 如果文本文件没有标题,则不要通过将它们插入预先格式化的块中来误导读者。
-
接受任何 ID 并且(仅当 code-3='Y' 时接受 ID='$$') 是矛盾的。
-
我的意思是接受所有其他 ID 并且(仅当 code-3='Y' 时接受 ID='$$')