grep -xv '.\{8,63\}' <input >output
grep
's -x
anahtarı bir tam çizgi eşleşmesini gösterir - yani eşleşen herhangi bir desen baştan aşağı bir çizgi tanımlamalıdır. yapıyor ...
grep -x pattern
... genellikle ...
grep ^pattern$
grep
's -v
anahtarı, bir desenin satır seçimi üzerindeki etkisini reddeder. genellikle ...
grep pattern
... sadece kalıpla eşleşen satırları seçecektir, ancak bir ile -v
reddedildiği desen yalnızca bu satırları yok eşleşecek seçilir.
...ve bu yüzden...
grep -xv '.\{8,63\}'
... 8 ile 63 karakter arasında herhangi bir yerden başlayarak kuyruğa kadar olan tüm satırlarla eşleşir ve -v
reddedilen seçim grep
yalnızca diğer her şeyin yazdırılmasına neden olur .
grep
ama düşünebilirawk
sen (çok esnek ve vb bundan başka işleme gerek, özellikle okunabilir ):awk '( length($0)<8 ) || ( length($0)>63 )'
Bir durumun #default eylem koşulunu eşleşen çizgi (ler) yazdırmaktır. Veya, 0 $ 'dan daha az işlem yaparak:awk '{ l=length($0) ; if (( l<8 ) || l>63 ) { print $0 ;} }'