Saya mengerti itu sed
adalah perintah untuk memanipulasi file teks.
Dari Googling saya, sepertinya -i
berarti melakukan operasi pada file itu sendiri, apakah ini benar?
Bagaimana dengan '1d'
?
Saya mengerti itu sed
adalah perintah untuk memanipulasi file teks.
Dari Googling saya, sepertinya -i
berarti melakukan operasi pada file itu sendiri, apakah ini benar?
Bagaimana dengan '1d'
?
Jawaban:
Di sed
:
-i
Opsi akan mengedit file input di tempat
'1d'
akan menghapus baris pertama dari file input
Contoh:
% cat file.txt
foo
bar
% sed -i '1d' file.txt
% cat file.txt
bar
Perhatikan bahwa, sebagian besar waktu adalah ide yang baik untuk mengambil cadangan saat menggunakan -i
opsi sehingga Anda memiliki cadangan file asli jika terjadi perubahan yang tidak terduga.
Misalnya, jika Anda melakukannya:
sed -i.orig '1d' file.txt
file asli akan disimpan file.txt.orig
dan file yang dimodifikasi akan disimpan file.txt
.
sed '1d' file.txt
Mencetak isi file.txt
; tidak termasuk baris pertama; ke output standar.
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
Mencetak isi file.txt
; tidak termasuk baris pertama; kembali ke file.txt
; menimpa yang asli.
sed -i.back '1d' file.txt
Membuat cadangan asli (as file.txt.back
), sebelum melakukan perubahan. Kecuali dengan FreeBSD sed
, sufiks (di sini .back
) harus dilampirkan pada -i
opsi (dalam argumen yang sama, tidak ada spasi di antara -i
dan .back
).
sed '2d' file.txt
Mencetak isi file.txt
; tidak termasuk baris kedua; ke output standar.
(Menentukan nomor apa pun akan menghapus baris yang sesuai)
Juga kompatibel dengan -i
bendera.
sed '1!d' file.txt
Mencetak isi file.txt
; tidak termasuk semua kecuali baris pertama; ke output standar.
(Dengan kata lain; hanya baris pertama yang dicetak).
Juga kompatibel dengan -i
bendera.
sed '$d' file.txt
Mencetak isi file.txt
; tidak termasuk baris terakhir; ke output standar.
Juga kompatibel dengan -i
bendera.
Di sed -h
miliki:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
dan 'melakukan operasi pada file itu sendiri.' itu mutlak.
Dan man
berkata: 'Sed adalah editor aliran. Editor aliran digunakan untuk melakukan transformasi teks dasar pada aliran input (file atau input dari pipa). '
sebagai pertanyaan anda,
sed -i '1d' file_name
berarti: menghapus baris pertama dalam file "file_name"
di tempat dan cadangan ke file. (Sama seperti mengedit file dan menghapus baris pertama secara langsung.)
-i
melihat apa yang terjadi terlebih dahulu, kemudian gunakan-i
untuk benar-benar mengubah file.