GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menggunakan baris file sebagai argumen perintah?

command `< file`

akan meneruskan konten file ke perintah di stdin, tetapi akan menghapus baris baru, artinya Anda tidak dapat mengulangi setiap baris satu per satu. Untuk itu Anda bisa menulis skrip dengan loop 'untuk':

for line in `cat input_file`; do some_command "$line"; done

Atau (varian multibaris):

for line in `cat input_file`
do
    some_command "$line"
done

Atau (varian multibaris dengan $() bukannya `` ):

for line in $(cat input_file)
do
    some_command "$line"
done

Referensi:

  1. Untuk sintaks loop:https://www.cyberciti.biz/faq/bash-for-loop/

Seperti yang telah disebutkan, Anda dapat menggunakan backticks atau $(cat filename) .

Apa yang tidak disebutkan, dan menurut saya penting untuk dicatat, adalah bahwa Anda harus ingat bahwa shell akan memecah isi file itu menurut spasi putih, memberikan setiap "kata" yang ditemukannya ke perintah Anda sebagai argumen. Dan meskipun Anda mungkin dapat menyertakan argumen baris perintah dalam tanda kutip sehingga dapat berisi spasi putih, urutan escape, dll., membaca dari file tidak akan melakukan hal yang sama. Misalnya, jika file Anda berisi:

a "b c" d

argumen yang akan Anda dapatkan adalah:

a
"b
c"
d

Jika Anda ingin menarik setiap baris sebagai argumen, gunakan konstruksi while/read/do:

while read i ; do command_name $i ; done < filename

Anda melakukannya dengan menggunakan backticks:

echo World > file.txt
echo Hello `cat file.txt`

Jika shell Anda adalah bash (antara lain), jalan pintas untuk $(cat afile) adalah $(< afile) , jadi Anda akan menulis:

mycommand "$(< file.txt)"

Didokumentasikan di halaman manual bash di bagian 'Pergantian Perintah'.

Secara bergantian, minta perintah Anda dibaca dari stdin, jadi:mycommand < file.txt


Linux
  1. Cara menggunakan perintah grep Linux

  2. Cara menggunakan perintah history di Linux

  3. Cara menggunakan sed untuk menghapus n baris terakhir dari sebuah file

  1. Cara Menggunakan Perintah sejarah Linux

  2. Cara Menggunakan Perintah Tar di Linux

  3. Bagaimana cara menggunakan perintah nama dasar?

  1. Cara Menggunakan Perintah chgrp dengan Contoh

  2. Cara Menggunakan Perintah baca Bash

  3. Cara Menggunakan Perintah md5sum di Linux