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 tail
yazdı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 -i
seçeneği
sed -i 1,42d dump.sql
sed -i 1,50000000d 17GigFile
geçici bir dosya oluşturur sedXYZ
. Temp dosyaları olmayan bir yaklaşım var mı?
tail -n +43
ve head -n 44
sö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 -l
oysa, iki kez işlemek, dosya üzerinde sed
veya tail
sadece 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
sed
Linux ve Mac'teki farklılıklar nedeniyle tail -n +43 dump.sql > dump.sql
format kullanmaya karar verdim .
tail
. Cevaplarından öğrenecek bir çok şey buldum. Teşekkürler.