我得到了一些問題,這些基本數據:AWK - 在下一條記錄上使用GETLINE?
DP;DG
67;
;10
;14
;14
;18
;18
;22
;65;x
68;
;0
;9
;25
;25;x
70;
的「X」值來如果在下一行$ 1:
DP;DG
67;
;10
;14
;14
;18
;18
;22
;65
68;
;0
;9
;25
;25
70;
,我想在這種輸出的變換存在或者如果$ 2爲空。根據我的理解,我必須使用getline,但是我不明白! 我試過以下代碼:
#!/bin/bash
file2=tmp.csv
file3=fin.csv
awk 'BEGIN {FS=OFS=";"}
{
print $0;
getline;
if($2="") {print $0";x"}
else {print $0}
}' $file2 > $file3
看起來很簡單。我沒有提到結果,與我的期望完全不同。
一些線索? getline是否需要解決這個問題?
OK,我繼續測試一些代碼:
#!/bin/bash
file2=tmp.csv
file3=fin.csv
awk 'BEGIN {FS=OFS=";"}
{
getline var
if (var ~ /.*;$/) {
print $0";x";
print var;
}
else {
print $0;
print var;
}
}' $file2 > $file3
這是相當好了,不過,這應標明所有的線條都沒有...我不知道爲什麼...
'從我的理解中,我必須使用getline'。不,讀有效AWK編程,第4版,由阿諾德·羅賓斯學習如何用awk和閱讀http://awk.freeshell.org/AllAboutGetline學習幾次它是適合使用函數getline和所有的注意事項和理由不至。 –