Saya ingin menemukan perintah bash yang akan membiarkan saya grep setiap file dalam direktori dan menulis output grep itu ke file terpisah. Dugaan saya adalah melakukan sesuatu seperti ini
ls -1 | xargs -I{} "grep ABC '{}' > '{}'.out"
tapi, sejauh yang saya tahu, xargs tidak suka tanda kutip ganda. Namun, jika saya menghapus tanda kutip ganda, maka perintah tersebut akan mengalihkan output dari seluruh perintah ke satu file yang disebut '{}'. Keluar alih-alih ke serangkaian file individual.
Adakah yang tahu cara melakukan ini menggunakan xargs? Saya hanya menggunakan skenario grep ini sebagai contoh untuk menggambarkan masalah saya dengan xargs sehingga solusi apa pun yang tidak menggunakan xargs tidak berlaku untuk saya.
xargs
tanpa-0
: ini hanya berlaku ketika Anda memfind
- pipe output denganxargs
, kan? ketika saya melakukanxargs -a <input_file>
bagaimana saya akan menggunakan ini? Sebagian besar perintah menyukaigrep
keluaran dengan\n
dan bukan\0.
Satu-satunya cara saya dapat memikirkan untuk mengatasi ini adalah dengan menggunakantr
lagi untuk memperbaikinya mungkin. Tetapi mengapa penting untuk menggunakannya hanya dengan-0
?