GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa mendapatkan kata-kata di antara dua contoh teks/pola pertama?

Ini salah satunya di awk:

$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0

Added feature 3
Added feature 4

Dalam cetakan cantik:

$ awk '/^=+$/ {     # at ===...
    f=!f            # flag state is flipped
    if(f==1)        # if its one (first ===...)
        next        # next record
    else if(f==0)   # if zero (second ===...)
        exit        # nothing more to do yeah
}
f' file             # print

Ini satu lagi di GNU sed:

$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0

Added feature 3
Added feature 4
  • /^=\+$/,// adalah singkatan dari /^=\+$/,/^=\+$/ , ia memilih garis di antara dua garis yang terdiri dari tanda sama dengan secara inklusif, dan perintah di antara tanda kurung kurawal berikut dijalankan untuk garis ini,
  • //!p adalah singkatan dari /^=\+$/!p , artinya jika baris masuk bukan salah satu yang hanya terdiri dari = s, cetaklah,
  • b berarti pergi ke akhir siklus (yaitu lulus q ),
  • q adalah untuk keluar dari sed setelah mencetak baris yang dipilih.

Versi berikut akan berfungsi dengan semua sed yang sesuai dengan POSIX tetapi terlihat 2x lebih samar:

sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file

Perhatikan bahwa ini tidak akan berfungsi jika ada dua konsekuen semua = baris di input.


Bisakah Anda mencoba mengikuti juga.

awk '/^=/{count++;next} count>=2{exit} {print}'  Input_file

Linux
  1. Bagaimana membedakan hanya baris pertama dari dua file?

  2. Bagaimana cara mengekstrak teks dari file besar, mulai dari kemunculan pertama string?

  3. Bagaimana saya bisa mendapatkan daftar semua kata yang salah eja dalam teks menggunakan Linux?

  1. Bagaimana Cara Menyisipkan Teks Sebelum Baris Pertama Sebuah File?

  2. Bagaimana saya bisa mendapatkan nama sistem operasi dengan andal?

  3. Bagaimana saya bisa mendapatkan waktu jam dinding dari proses yang sedang berjalan?

  1. Bagaimana Cara Menghapus N Baris Pertama Dari File Ascii Menggunakan Perintah Shell?

  2. Ekstrak Teks Antara Dua Baris Tertentu?

  3. Bagaimana saya bisa mendapatkan status keyboard di Linux?