【发布时间】:2017-07-18 02:53:14
【问题描述】:
我有一个包含数千笔银行交易的文本文件,我需要根据在交易的另一行找到的文本来搜索和替换文本。每笔交易都是这样列出的……
2016/01/08 * POS DEBIT LOWES #02793* SPOKANE VALLE WA #7522
Expenses:Unknown $289.78
Assets:INB Checking
我需要能够在第一行搜索“LOWES”,如果文本匹配,它会将费用列更改为费用:建筑材料
所以整个交易都是这样的......
2016/01/08 * POS DEBIT LOWES #02793* SPOKANE VALLE WA #7522
Expenses:Building Materials $289.78
Assets:INB Checking
我知道我可以使用 sed 进行查找和替换,但是如何根据第一行的模式匹配来做到这一点?
【问题讨论】:
-
如果你能展示这些交易是如何分开的会更好,例如中间有换行符?
awk更适合,但我认为出于您的目的,使用N命令可以... -
事务之间没有行,它们只是如图所示继续,没有任何分隔。
-
嗯好吧..我认为使用 sed 的
n或N命令适合这里.. 参见grymoire.com/Unix/Sed.html#uh-51 示例 -
你的顶线是什么?带有
LOWES关键字的文件中的最新行或第一行?
标签: sed pattern-matching