【发布时间】:2022-01-31 08:01:41
【问题描述】:
我有以下名为 x.txt 的文件(仅摘录):
exMap( "0Ba|Mtm|Mtm","Variable Expenses","Accounting & Legal" )
exMap( "gn C[hu]|gn C[hu]|ent Ca","Variable Expenses","Bank – Charges" )
exMap( "t m|e Fee|^Deb|A\/C|hly pr|ged Ov|^Visa","Fixed Expenses","Bank – Charges" )
exMap( "ATM|ATM|ATM|ATM|ATM|ATM|ATM|ATM|ATM|ATM|^Fix C|R US","Variable Expenses","Bank – Withdrawals" )
exMap( "Acci","Variable Expenses","Business – ACC" )
exMap( "use St$|Pgg","Variable Expenses","Business – Miscellaneous" )
exMap( "utd$|^Ellm|^Ellm|a Cy|^Stihl|^Stihl|a Mow","Variable Expenses","Business – Repairs & Maintenance" )
exMap( "Nzp","Fixed Expenses","Business Services – Mail" )
exMap( "0Ki|^K S","Fixed Expenses","Business – Storage" )
exMap( "2 C|2 C|40D|Tor|Tor|Tor|e of B|^Jay|^Luk|ll J|ty AP|le Au|eemi|eemi|eemi|^N[Zz] S|^N[Zz] S|s The J|P[Bb] T|P[Bb] T|P[Bb] T|mTo|deme|deme|deme|deme|deme|deme","Variable Expenses","Capex" )
exMap( "90C","Variable Expenses","Christian to Crewcut" )
exMap( "10E","Variable Expenses","Christian to Edorne" )
exMap( "0.0Ch|0.0Ch","Variable Expenses","Edorne to Christian" )
exMap( "lyt|-J|lyt|y Ha|NZA|^NZ T|^NZ T|^NZ T|^NZ T|^NZ T|^NZ T|^NZ T|acle Boo","Variable Expenses","Education" )
exMap( "weat|Aca|weat|Aca|weat|^A A|^A A|^A A|^A A|^A A|^A A|^A A|weat","Fixed Expenses","Education" )
exMap( "ntac|0Tr|ntac","Fixed Expenses","Electricity" )
此文件以逗号分隔,由三列组成。第一列包含 awk 正则表达式搜索模式。其中一些是重复的,例如 |Mtm|在第一个或 |ATM|例如在第 4 行。有没有一种聪明的方法来消除整个文件中的重复并使用 awk 和/或 sed 保持管道结构完整?
第一行和第四行所需的输出将是:
exMap( "0Ba|Mtm","Variable Expenses","Accounting & Legal" )
exMap( "ATM|^Fix C|R US","Variable Expenses","Bank – Withdrawals" )
【问题讨论】:
-
尝试自己编写一些东西,如果不起作用,请具体向我们展示您所做的事情,以便我们为您提供帮助。您启动它,然后我们提供帮助。我们不是为你写的。 向我们展示您尝试过的实际代码,然后描述发生的情况和不正确的地方,然后我们可以从那里为您提供帮助。如果您先自己尝试一下,您可能会非常接近答案。