2GB SQL dökümü ilk 42 satırını kaldırmak gerekiyor.
İlk satırları kullanarak şunları izleyebildiğimi biliyorum:
head -n 44 dump.sql
Ancak bunları düzenlemek veya kaldırmak için yine de var mı?
2GB SQL dökümü ilk 42 satırını kaldırmak gerekiyor.
İlk satırları kullanarak şunları izleyebildiğimi biliyorum:
head -n 44 dump.sql
Ancak bunları düzenlemek veya kaldırmak için yine de var mı?
Yanıtlar:
Sadece istiyorsanız görüntülemek kullanabilirsiniz üzerinde 43. gelen çizgileri
tail -n +43 dump.sql
+İşareti önemlidir - bu olmadan tailyazdırılır son yerine 43 satırları. Alternatif olarak 'sed' ile
sed 1,42d dump.sql
Gerçekten orijinal dosyadan ilk 42 satırları silmek istiyorsanız o zaman sed ile değişim INPLACE yapmak yapabilir -iseçeneği
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFilegeçici bir dosya oluşturur sedXYZ. Temp dosyaları olmayan bir yaklaşım var mı?
tail -n +43ve head -n 44söz konusu belirtildiği gibi?
Bu en kolay gibi görünüyor:
sed '1,42d' test.sql > test2.sql
1-42 satırlarını test.sql dosyasından çıkarın ve test2.sql olarak kaydedin
Vim'i Ex modunda kullanabilirsiniz:
ex -s -c '1d42|x' dump.sql
1 ilk satıra taşı
42 42 çizgi seç
d silmek
x kaydet ve kapat
Üzgünüm, şu anda size gerçek bir kod veremiyorum. Ancak, çizgileri boyunca bir şeye bakmayı deneyin
tail -n arcv(`wc -l`) -44
Bunun yapması gereken (bir kez doğru biçimlendirildiğinde) dosyadaki satır sayısını (wc -l) saymak, ondan 44 (-44) çıkarmak ve dosyadaki 45. satırdan başlayarak her şeyi yazdırmaktır.
Umarım bu yardımcı olur ve iyi şanslar.
wc -loysa, iki kez işlemek, dosya üzerinde sedveya tailsadece bir kez işlemek.
Sadece bunu eklemek için. Bir mac kullanıyorsanız, yedekleme uzantısını eklemeniz gerekir. Bu gönderiden cevap .
sed -i '.bak' 1,42d dump.sql
sedLinux ve Mac'teki farklılıklar nedeniyle tail -n +43 dump.sql > dump.sqlformat kullanmaya karar verdim .
tail. Cevaplarından öğrenecek bir çok şey buldum. Teşekkürler.