Cari string dan baca baris berikutnya


1

Saya perlu menulis a kulit program yang menginstal beberapa paket. Program ini akan berjalan di Linux (jelas beberapa perintah tidak akan berfungsi, misalnya, pada distro berbasis Arch).

Jadi, saya memanggil file ini config.conf dengan struktur sebagai berikut:

#EMAIL
email address here
#TWITTER
twitter account
#FORUM
a bunch of 'http://foru.ms'
#FACEBOOK

#REDDIT
reddit username

Program initial_install.sh harus mencari baris yang dimulai dengan hash dan, jika baris berikutnya tidak kosong, instal paket yang diperlukan untuk kategori itu. Misalnya, ia mencari #TWITTER dan, hanya jika akun twitter ditulis tepat di bawah garis itu, itu menginstal aliran pelangi klien twitter dengan sudo apt-get install rainbowstream.

Bisakah kamu membantuku? Saya tidak punya ide, saya bukan benar-benar 'ahli shell' ..

Jawaban:


1

Anda bisa melakukannya dengan grep

  cat filename | grep -A1 TWITTER | grep -v TWITTER

atau, mungkin lebih baik, Anda bisa melakukannya dengan awk

  awk '/TWITTER/{getline; print}' filename

uhm, mengerti apa yang akan dilakukan 'kucing': sepertinya ia mencetak garis di sebelahnya dengan kata yang diberikan. Tapi 1) saya tidak ingin menampilkan output ITU (mungkin --silent dapat menyelesaikannya?) Dan saya perlu sesuatu seperti 'jika garis yang dicetak tidak kosong, lakukan $ this' ... ide?
d33pcode
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.