GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mengedit semua file yang dikembalikan oleh find in vi di Linux?

Ini seharusnya berhasil:

find . -name "*.txt" -exec vim {} + 

Gunakan Vim, itu lebih baik untuk kesehatan Anda. :-)

+ yang sering diabaikan pilihan untuk -exec membuat semua nama file (hingga batas panjang baris) muncul dalam satu baris, yaitu Anda masih dapat membuka semua file dalam satu vim sesi (navigasi dengan :n untuk selanjutnya dan :N untuk file sebelumnya).

Dengan vim -p Anda mendapatkan tab file untuk setiap file. Periksa :help tab-page-commands untuk detail lebih lanjut.

Dengan vim -o Anda akan mendapatkan jendela yang dibagi secara horizontal untuk setiap file, vim -O jendela yang terbelah secara vertikal. Periksa :help window-move-cursor untuk lebih jelasnya.

Perhatikan bahwa versi sebelumnya dari jawaban ini, vim $(find . -name "*.txt") , tidak berfungsi dengan spasi pada nama file, dan memiliki implikasi keamanan.

Menyalin ke xargs vi memberikan Warning: Input is not from a terminal , ditambah terminal dengan perilaku palsu setelahnya. Grawity pengguna menjelaskan alasannya dalam komentar di bawah, dan dengan sedikit penjelasan lagi dalam pertanyaan ini.


Atau jalankan vim dan dari sana:

:args **/*.txt

Linux
  1. Cara Menggunakan Perintah find Linux untuk Menemukan File

  2. Bagaimana menemukan semua file yang jarang di Linux

  3. Bagaimana saya bisa menemukan file header dari bahasa pemrograman C di Linux?

  1. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  2. Bagaimana saya bisa mengedit file jika tidak ada vi, vim, joe, dll?

  3. Bagaimana cara mendaftar semua file partisi di linux?

  1. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  2. Bagaimana saya bisa menemukan semua ekstensi file yang berbeda dalam hierarki folder?

  3. Bagaimana saya bisa menemukan semua file yang di-hardlink pada sistem file?