2016-04-07 15 views
1

Sabit uzunluktaki bir dosyadan belirli satırları çıkarmak için aşağıdaki komutu kullanıyorum. her satır için uzunluk hattı 748awk - özel karaktere sahip sabit uzunluk satırı yazdırma

awk 'substr($0,8,2)=="04"' test.dat > output.dat 

en test.dat 100 çizgiler vardı diyelim olduğunu. Çıktı dosyasında bazı satırların 748 karakterden daha az olduğunu görüyorum.

Özel değişkenler işlenirken awk çizgiyi tetiklediği için mi? Eğer öyleyse, bundan kaçınabilir miyiz?

Aşağıdaki Yanıtlardan, POSIX awk'nin boş ve diğer özel karakterleri olmayacağını anlıyorum. Sed ile başka bir seçenek var mı yoksa grep bunu benim için yapabilir mi?

+0

Herhangi bir soruna neden olan tek özel karakter bir satırsonu olacaktır. 748 karakter uzunluğunda kayıtlarınızda bulunan yeni satırlar var mı? – jas

+0

Evet, son karakter – manchand

+1

numaralı bir satırdır. Beklenen 748 karakterden daha az bir çizgi gördüğünüzde, kayıtların ortasında (kesildiği yerde) yeni bir satır olduğu için mi? – jas

cevap

0

Boşluğu boşluğa sığdırmak benim için bir sorun değildi, Bu yüzden ihtiyacım olan verileri almak için aşağıdaki komutu kullandım.

perl -pe '/ \ 000// g' Inputfile | awk 'substr ($ 0,64,2) == "04"'> Outputfile

İlgili konular