2 metin dosyam var. "A.txt"1 txt dosyasından diğerine değer eklerken boşluk ile awk kaldırılıyor?
A 1 AB ... 1 5 -3 4.5 (contains 11 columns. So "4.5" is in the 11th column)
A 2 BC ... -2 3 8 9.2
A 3 WE ... 2 3 8 5.2
A 4 RT ... 23 2 24 4.1
...
END
"B.txt" nihai 2 sütun "a.txt" bu farklılıklar haricinde benzerdir içerir. Başka bir fark, "B.txt" in "A.txt" de olmayan bazı ek satırlar içermesidir. Örneğin, üçüncü hat A 3 QEW ... 5 23 34 5
"B.txt" in değil,
A 1 AB ... 1 5 4 9
A 2 BC ... -2 3 1 0
A 3 QEW ... 5 23 34 5
A 4 WE ... 2 3 -7 56
A 5 RT ... 23 2 -5 14
...
END
Ne yapmak istiyorum a.txt" her satırında geçen sütunun değerini ayıklamak olduğunu "a.txt" olduğunu "ve" B.txt "deki ilgili satıra ekleyin. Ve "A.txt" içinde olmayan "B.txt" deki her satır için, üçüncü sütun öğesi "Q" harfi ile başlıyorsa (örneğin, QEW) ve diğer 2 değerinin değeri 1 değerini eklemek istiyorum. . Yani çıkış eserlerin altına
A 1 AB ... 1 5 4 9 4.5
A 2 BC ... -2 3 1 0 9.2
A 3 QEW ... 5 23 34 5 1
A 4 WE ... 2 3 -7 56 5.2
A 5 RT ... 23 2 -5 14 4.1
...
END
gibi awk
komutları görünmelidir:
NR==FNR{
arr[$3] = $11
next
}
{
if ($3 in arr){
print($0, arr[$3])
}else if ($3 == "^Q"){
print($0, "2")
}else{
print($0, "1")
}
}
Ran tek sorun olsun çıkış
A 1 AB ... 1 5 4 9
4.5
A 2 BC ... -2 3 1 0
9.2
A 3 QEW ... 5 23 34 5
1
A 4 WE ... 2 3 -7 56
5.2
A 5 RT ... 23 2 -5 14
4.1
...
END
olmasıdır
awk -f script.awk f1 f2
ile
yanlıştır, çünkü son sütundaki değerler yeni satırlara girilmelidir. Bunu nasıl düzeltebilirim? Listelediğim yerine kullanabileceğim başka bir komut var mı?
Bunu denediğimde hala orijinal soruda bahsettiğim yeni satır sorununu alıyorum – user5739619
Tried dos2unix? – karakfa