nasıl sed kullanarak her garip çizgi kaldırabilirim?Diğer tüm satırlar sed ile nasıl kaldırılır?
remove
keep
remove
keep
remove
...
nasıl sed kullanarak her garip çizgi kaldırabilirim?Diğer tüm satırlar sed ile nasıl kaldırılır?
remove
keep
remove
keep
remove
...
GNU sed, uygun bir adresleme modu vardır:
sed -n '1~2!p' file
hat 1 başlayarak anlamına gelir ve 2 adımda, baskı diğer tüm hatları ile.
Aynı şekilde, sen -n
damla ve silebilir eşleşen hatları:
sed '1~2d'
Ayrıca awk kullanılarak yapılabilir:
awk 'NR%2==0' file
(hat sayısı 2 katları olduğunda, baskı satır)
Bunun için teşekkürler! çok yararlı. –
Macos üzerinde sed ile çalıştığımda "geçersiz komut kodu ~" hatasını alıyorum. Taşınabilirlik için –
Şu ana kadar düşünebileceğiniz en kısa yol:
sed -n 'g;n;p' file
Bu GNU dışı sed
sürümleri (yanı sıra GNU sed
) ile çalışmalıdır.
+1 –
Bu, OS X üzerinde de çalışır! (Aksine 'sed -n 1 ~ 2! P'''.) Bu satırları 2,4,6, ... Ben satırları 1,3,5 almaya nasıl adam sayfasından çözemedim alır .. İlk satır eklemek, basit bir kesmek olsa da. – Nagel
@Nagel: deneyin: '-n sed 'p, n' Dosya' ya da 'sed 'n, d' tek çizgiler çıkışı için Dosya'. Bu arada, 'g' bile hattının çıkışını için gerekli olduğunu düşünmüyorum:; iş gibi görünüyor Dosya ' 'p n'' -n sed. –
Bir daha awk:
awk getline file
Perl çözeltisi:
perl -ne 'print if $. % 2 == 0' file
$.
bu sabah Nisan yanı espriler aptallar gibi görünüyor hat numaralı soru
Adam, sizin için zayıf okuma becerilerini gösteren “sed” kelimesini istedi, ancak birisi bunu yararlı bulabilir, bu yüzden +1. –
sed, awk ve perl'den beri sık sık cevap verebiliyorum. Hız ve basitlikte farklılıklar olsa da, bunların hepsi komut satırında veya kabuk komut dosyalarında kullanılır. –
Yarım olduğunu ... – Will
o Nisan'da, daha sonra cevap olmalıdır buysa: 'grep -v Çıkar' hakkında Fakat ne: – paxdiablo
@paxdiablo input.txt değil grep? – Cascabel