Bunun sed
metin dosyasını işlemek için bir komut olduğunu biliyorum .
Googling'imden, -i
dosya üzerinde işlem yapmak anlamına geldiği anlaşılıyor , doğru mu?
Ne hakkında '1d'
?
Bunun sed
metin dosyasını işlemek için bir komut olduğunu biliyorum .
Googling'imden, -i
dosya üzerinde işlem yapmak anlamına geldiği anlaşılıyor , doğru mu?
Ne hakkında '1d'
?
Yanıtlar:
İçinde sed
:
-i
seçenek giriş dosyasını yerinde düzenler
'1d'
giriş dosyasının ilk satırını kaldıracak
Örnek:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Unutmayın ki, çoğu zaman -i
beklenmedik bir değişiklik olması durumunda orijinal dosyayı yedeklemeniz için bu seçeneği kullanırken yedekleme yapmak iyi bir fikirdir .
Örneğin, yaparsanız:
sed -i.orig '1d' file.txt
orijinal dosya olarak tutulacak file.txt.orig
ve değiştirilmiş dosya olacaktır file.txt
.
sed '1d' file.txt
İçeriğini yazdırır file.txt
; ilk satır hariç; standart çıktıya.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
İçeriğini yazdırır file.txt
; ilk satır hariç; geri file.txt
; orijinalin üzerine.
sed -i.back '1d' file.txt
file.txt.back
Değişiklik yapmadan önce orijinalin (as ) bir yedeğini oluşturur . FreeBSD dışında sed
, (burada .back
) eki -i
seçeneğe eklenmelidir (aynı argümanda, -i
ve arasında boşluk yoktur .back
).
sed '2d' file.txt
İçeriğini yazdırır file.txt
; ikinci satır hariç; standart çıktıya.
(Herhangi bir numarayı belirlemek ilgili satırı kaldıracak).
-i
Bayrakla da uyumlu .
sed '1!d' file.txt
İçeriğini yazdırır file.txt
; Tüm hariç fakat ilk satırında; standart çıktıya.
(Başka bir deyişle; yalnızca ilk satır yazdırılır).
-i
Bayrakla da uyumlu .
sed '$d' file.txt
İçeriğini yazdırır file.txt
; son satır hariç; standart çıktıya.
-i
Bayrakla da uyumlu .
Var sed -h
:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
ve 'işlemi dosyanın kendisinde yap.' mutlak.
Ve man
dedi ki: 'Sed bir dere editörüdür. Bir akış editörü, bir giriş akışında (bir boru hattından bir dosya veya giriş) temel metin dönüşümlerini gerçekleştirmek için kullanılır. '
Sorunuz olarak
sed -i '1d' file_name
anlamına gelir: yerdeki dosyadaki ilk satırı silin ve dosyaya "file_name"
yedekleyin. (tıpkı dosyayı düzenlemek ve doğrudan ilk satırı silmek gibi.)
-i
İlk önce ne olacağını görmek için olmadan da "kuru çalışma" yapabilirsiniz , sonra-i
dosyayı gerçekten değiştirmek için kullanın .