awk - 通过正则表达式/字符串条件查找行并删除最后一行

awk - condition find line by regex / string and delete last line

我得到了一个复杂的交易 csv。我需要提取从包含字符串 "Transaktion" 的特定行/字段开始的数据,并且还需要跳过(每个)csv.

的最后一行

我可以让 AWK 找到起始行并处理所有后续操作。很好,但我无法添加跳过最后一行的方法。

/^Transaktionen/,/^$/ {
getline; 
print  FS  FS } 

你可以使用这个awk:

awk '/^Transaktionen/{p=1; next} p {
   if (c2 != "") print c2, c3, c4; c2=; c3=; c4=}' file.csv

试试这个 awk 脚本:

BEGIN {
        #OFS=FS=";" ;
        #print [=11=];
        print "Datum2;Zahlart3;TXN Kundendetails4 - KundenID5;Beschreibung6;Betrag7;Gebuehr10;Disagio11;Auszahlungsbetrag12";
        #einnahmen = "Transaktionen";
        #erstattung = "Refunds";
}
/^Transaktionen/{p=1; next} p {
   if (c2 != "")
      print c2, c3, c4, c5, c6 , c7 ,c10, c11, c12;
   c2=; c3=; c4=; c5=; c6=; c7=; c10=; c11=; c12=;
}