Alat terbaik untuk mengedit file di tempat non-interaktif adalah ex.
ex -sc '%s/\(\.com\).*/\1/ | x' file.txt
Jika Anda telah menggunakan vidan jika Anda pernah mengetik perintah yang dimulai dengan titik dua :Anda telah menggunakan perintah ex. Tentu saja banyak dari perintah yang lebih maju atau "mewah" yang dapat Anda lakukan dengan cara ini adalah ekstensi Vim (mis. :bufdo) Dan tidak ditentukan dalam spesifikasi POSIX untukex , tetapi spesifikasi tersebut memungkinkan untuk tingkat daya dan fleksibilitas yang benar-benar menakjubkan di non-visual. pengeditan teks (apakah interaktif atau otomatis).
Perintah di atas memiliki beberapa bagian.
-smemungkinkan mode hening untuk mempersiapkan expenggunaan bets. (Menekan pesan output dkk.)
-cmenentukan perintah untuk mengeksekusi setelah file ( file.txt, dalam kasus ini) dibuka di buffer.
%adalah specifier alamat yang setara dengan 1,$— itu berarti bahwa perintah berikut diterapkan ke semua baris buffer.
sadalah perintah pengganti yang mungkin sudah Anda kenal. Ini biasa digunakan divi dan pada dasarnya memiliki fitur yang identik dengan sperintahsed , meskipun beberapa fitur regex canggih dapat bervariasi berdasarkan implementasi. Dalam hal ini dari ".com" hingga akhir baris diganti dengan hanya ".com".
Bilah vertikal memisahkan perintah berurutan yang akan dieksekusi. Dalam banyak (sebagian besar)ex implementasi, Anda juga dapat menggunakan -copsi tambahan , seperti:
ex -sc '%s/\(\.com\).*/\1/' -c x file.txt
Namun, ini tidak diperlukan oleh POSIX.
The xperintah keluar, setelah menulis perubahan ke file. Berbeda dengan wqyang berarti "menulis dan berhenti", xhanya menulis ke file jika buffer telah diedit. Jadi, jika file Anda tidak diubah, stempel waktu akan dipertahankan.
.comhanya alih-alih menghapus semuanya setelah dan termasuk/karakter pertama ? Bagaimana jika Anda memiliki URL sepertien.wikipedia.org/wiki/Ubuntudi daftar Anda?