Dosya:
O000000667520994000000074720121112000000N^@^@^@
Aşağıdaki komutu kullandım ama işe yaramadı.
grep "^@^@^@" *
Dosya:
O000000667520994000000074720121112000000N^@^@^@
Aşağıdaki komutu kullandım ama işe yaramadı.
grep "^@^@^@" *
Yanıtlar:
Perl-regexp modunda (-P) kontrol / yazdırılamayan karakterler de dahil olmak üzere herhangi bir karakter için hex kodunu kullanabilirsiniz.
grep -Pa '\x00' ...
grep -Pv '\x00' file...
-a(bazen?) desen bile bulamaz. Teşekkürler! Pbies de yardımcı olabilir.
^@Karat ^ve tabelasını değil @, bir karakter. Bazı programların NUL karakterini göstermesi - ASCII değer 0, \0C olarak da bilinir .
Burada NUL baytında bir dosya oluşturdum. † Yazdırılmayan cat -vkarakterleri göstermek için kullandığımı fark et.
$ cat -v blah
hello
null^@
hi
$ hexdump -C blah
00000000 68 65 6c 6c 6f 0a 6e 75 6c 6c 00 0a 68 69 0a |hello.null..hi.|
0000000f
Grep, C dizelerini sonlandırmak için kullanıldıklarından NUL bulmakta zorlanıyor. Ancak Sed, işi yapabilir:
$ sed -n '/\x0/p' blah
null
$ sed -n '/\x0/p' blah | cat -v
null^@
† vi modunda , boş mod girmek için Ctrl- V, Ctrl- Shift- düğmelerine basın @.
Eğer grep -Pişi (örneğin OS X) değil, şunu deneyin:
grep -E '\x00' ...
grep -Pa '\x00' ...
Bash'de C-qveya ile ön eklendiğinde özel karakterler ekleyebilirsiniz C-v. Mesela örneğin
grep 'Ctrl-vCtrl-a' file.txt
Arama dizgisi control key+ character v, ardından ASCII SOH (01) değerini arayan control key+ ile okunmalıdır character a. Ne yazık ki bu NUL karakteri için işe yaramıyor.
^ @, NUL karakteridir. Dosyalarınızın içindeki satırlarla ne yapmak istiyorsunuz?
Benzer bir mesele ile ilgilenen /programming/2398393/identifying-and-removing-null-characters-in-unix adresini ziyaret edebilirsiniz .
Karakter ^ @, NUL karakteridir, bu yüzden doğrudan çizilemeyeceğinden korkuyorum.
En iyi seçeneğiniz muhtemelen bu bayt sırasını arayan basit bir program yazmak olabilir.
Alternatif olarak, onu onaltılık bir döküme ( od, xxdya da öylesine) dönüştürmek ve çıktısını almak için deneyebilirsiniz . Ama açık konuşursak, doğru yapmak zor olur.
-aSeçenek eklemek isteyebilirsiniz , aksi takdirdegrepikili veri olduğunu düşünür ve eşleşen satırları görüntülemez.