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=;
}
我得到了一个复杂的交易 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=;
}