GNU/Linux >> Belajar Linux >  >> Linux

xargs yang dipisahkan baris baru

Solusi 1:

GNU xargs (default di Linux; instal findutils dari MacPorts di OS X untuk mendapatkannya) mendukung -d yang memungkinkan Anda menentukan pembatas khusus untuk masukan, sehingga Anda dapat melakukan

ls *foo | xargs -d '\n' -P4 foo 

Solusi 2:

Sesuatu di sepanjang garis

alias myxargs='perl -p -e "s/\n/\0/;" | xargs -0'
cat nonzerofile | myxargs command

harus bekerja.

Solusi 3:

Dengan Bash, saya biasanya lebih suka menghindari xargs untuk apa pun yang paling tidak rumit, demi loop saat membaca. Untuk pertanyaan Anda, while read -ar LINE; do ...; done melakukan tugasnya (ingat untuk menggunakan sintaks array dengan LINE, mis., ${LINE[@]} untuk seluruh baris). Ini tidak memerlukan tipuan apa pun:secara default baca hanya menggunakan \n sebagai karakter terminator garis.

Saya harus memposting pertanyaan di SO tentang pro &kontra dari xargs vs. while-read loops... selesai!

Solusi 4:

$ echo "1\n2 3\n4 5 6" | xargs -L1 echo  "#"
# 1
# 2 3
# 4 5 6

Linux
  1. temukan -exec cmd {} + vs | xargs

  2. Batasi Ukuran Direktori

  3. File menghilang di server linux

  1. Bagaimana Cara Mencadangkan File crontab -e?

  2. Teruskan SSH melalui terowongan SSH

  3. Bagaimana cara melarikan diri! dalam kata sandi?

  1. 11 Contoh Perintah Xargs di Linux

  2. Tampilan praktis dari perintah xargs

  3. menambahkan kata sandi ke .ssh/config