28Jun

Linux Terminali Kullanarak Bir Dosyanın Ortasından Satırları Kaldırma

Kendi sunucularınızı yönetirken, yarı-düzenli olarak yapmanız gereken şeylerden birisi, dosyanın ortasından dosyaları çıkarmaktır. Belki bir günlük dosyasıdır veya yaptığım gibi MySQL yedek dosyanızın ortasından ek bir tabloya ihtiyacınız vardır.

Satır numaralarını bulmak için basit bir grep -n komutu işi yaptı( -n bağımsız değişkeni satır numaralarını çıktı).Bu, çekip çıkarmam gereken şeyi bulmamı kolaylaştırdı.

grep -n wp_posts howtogeekdb010114.bak |daha fazlası

Bunun gibi bir sonuç ortaya çıkar ve çıktıların sol tarafındaki satır sayısını gösterir. Her şeyi "daha" içine yerleştirmek, ilk satırın kaydırılmadan görülebilmesini sağlar.Şimdi, başlamak üzere satır numaranız ve muhtemelen ile biten numaranız var.

4160: - Tablo `wp_posts` için tablo yapısı 4163: DROP TABLE IF EXISTS` wp_posts`;42066: CREATE TABLE `wp_posts '(4203: -' wp_posts 'tablosu için veri dökümü 4206: LOCK TABLO' wp_posts` WRITE; 4207: / *! 40000 ALTER TABLO` wp_posts` DISABLE KEYS * /; 4208: INSERT INTO `wp_posts`DEĞERLER( 1,2, '2006-09-11 05:07:23', '2006-09-11

Tabii ki, grep'in çıktısını tabii ki başka bir dosyaya gönderebilirsiniz:

grep keyword filename.txt & gt; outputfile

Benim durumumda, işe yaramıyordu, sonuçta çıkan yedeği bir nedenle alamadım. Yani, sed kullanarak satırları ayıklamak için farklı bir yol buldum ve bu yöntem işe yaradı.

sed -n '4160,4209p' howtogeekdb0101140201.bak & gt; çıktı dosyası

Temel olarak sözdizimi şu şekildedir: -n bağımsız değişkenini kullanmayı ve ikinci satır numarasından sonra "p "'yi eklemeyi unutmayın

sed -n 'FIRSTLINENUMBER, LASTLINENUMBERp 'dosyaadı & gt; çıktı dosyası adı

Bir dosyanın ortasında belirli satırları dışarı çekebileceğiniz başka yollar var mı?"Komutu, bir dosyanın ilk x satırlarını okumak için + sayı bağımsız değişkeniyle komut satırına ayıklamak için kuyruğu kullanın. En iyi seçenek değil, çok masraflı.Daha basit bir seçenek mi? Dosyayı, istediğiniz satır numarasına doğru birden çok dosyaya çevirmek için split komutunu kullanabilir ve sonra satırları baş ya da kuyruk kullanarak ayıklayabilirsiniz.

Veya sadece sed kullanabilirsiniz.