GNU/Linux >> Belajar Linux >  >> Linux

3 trik untuk mendapatkan beberapa perintah output di baris yang sama

Tiga trik untuk mendapatkan dua perintah output dalam baris tunggal. Biasanya dua output perintah akan selalu dipisahkan oleh carriage return di terminal Linux.

Salah satu rintangan utama dalam pembuatan skrip adalah membuat output Anda diformat dengan baik sesuai dengan persyaratan. Di Linux/Unix setiap perintah stdout outputnya selalu di baris baru. Ini adalah rintangan dalam banyak situasi di mana pembuat kode menginginkan dua keluaran, dua istilah, dua variabel dalam satu baris misalnya format CSV. Dalam posting ini, kita akan melihat bagaimana menampilkan dua atau lebih output perintah dalam satu baris.

Baca juga :Membuat Script Posting Terkait

Biasanya ketika kita menjalankan lebih dari satu perintah, mereka akan menampilkan output dalam baris yang berbeda:

# date ; hostname
Sat Dec 24 01:35:50 EDT 2016
testsrv2

# echo text1; echo text2; echo text3
text1
text2
text3

Dalam contoh di atas, perintah memiliki output per baris. Kami akan menyelesaikan semua output dalam satu baris menggunakan trik di bawah ini.

Trik 1:

Menggunakan fungsi terjemahan. Seperti yang saya katakan sebelumnya, setiap output perintah disertai dengan carriage return. Kami akan menerjemahkan carriage return dengan karakter tab sehingga mendapatkan dua atau lebih output perintah dalam satu baris.

# (date; hostname) |tr '\n' '\t'
Sat Dec 24 01:36:22 EDT 2016    testsrv2

# (echo text1; echo text2; echo text3) |tr '\n' '\t'
text1   text2   text3

Melewati output untuk menerjemahkan fungsi, kami mencapai output baris tunggal. Di sini kami menginstruksikan tr berfungsi untuk menerjemahkan semua carriage return (\n ) ke tab (\t ).

Jika Anda ingin menampilkan dalam format CSV (nilai yang dipisahkan koma) kemudian ganti tab dengan koma dan Anda akan mendapatkannya.

# (date; hostname) |tr '\n' ','
Sat Dec 24 01:43:09 EDT 2016,testsrv2,

# (echo text1; echo text2; echo text3) |tr '\n' ','
text1,text2,text3,

Anda dapat mengamati satu koma tambahan yang menunjukkan setiap keluaran perintah diakhiri dengan \n dan karenanya diganti dengan ,

Trik 2:

Dengan mendefinisikan setiap keluaran perintah sebagai variabel. Di sini kita akan menyimpan output dari setiap perintah dalam satu variabel dan kemudian kita akan menggemakan variabel tersebut dalam satu baris.

# mydate=`date`

# myname=`hostname`

# echo $myname $mydate
testsrv2 Sat Dec 24 01:46:04 EDT 2016

Di sini kami menyimpan output perintah tanggal dan nama host di mydate dan myname variabel. Pada perintah terakhir, kami menggemakan kedua variabel dengan spasi di antaranya. Perhatikan bahwa output perintah dapat disimpan dalam variabel dengan mengeksekusi perintah menggunakan backticks (eksekusi in-line)!

Trik 3:

Dengan menggemakan keluaran eksekusi sebaris. Eksekusi in-line yaitu menggunakan backticks untuk menjalankan perintah dalam perintah lain. Kami akan menggunakan trik ini untuk menggemakan output dalam satu baris.

# echo "`date` `hostname`"
Sat Dec 24 01:50:36 EDT 2016 testsrv2

Pada contoh di atas, pertama, kita telah menjalankan perintah dan mendapatkan output. Tetapi output tersebut dimasukkan ke dalam perintah echo. Oleh karena itu echo perintah stdout mereka dalam satu baris.

# echo "`echo text1` `echo text2` `echo text3`"
text1 text2 text3

Catat bahwa kami menjalankan setiap perintah dalam tanda kutip back tick yang terpisah.


Linux
  1. $_ Vs !$. Argumen Terakhir Dari Perintah Sebelumnya Dan Pengalihan Output?

  2. CentOS / RHEL :Cara melihat perintah yang dijalankan dalam output perintah riwayat yum

  3. CentOS / RHEL :Cara mendapatkan tanggal dan waktu perintah yang dieksekusi di output perintah history

  1. Bagaimana cara menambahkan output ke file?

  2. Dapatkan 4 karakter keluaran terakhir dari keluaran standar

  3. Jalankan beberapa perintah paralel sekaligus di terminal yang sama

  1. Bagaimana Cara Menetapkan Output Perintah Ke Variabel Shell?

  2. Output Dari Perintah "terakhir"?

  3. Dapatkan baris pertama dari keluaran perintah shell