Saya ingin mencetak semua baris dari file sampai kata yang cocok mohon saran bagaimana melakukannya dengan awk
sebagai contoh
Saya ingin mencetak semua baris sampai kata PPP
komentar baris pertama bisa berbeda dari AAA (kata apa saja)
cat file.txt
AAA ( the first line/word chuld be any word !!!!! )
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
MMM
(((
&&&
jadi saya harus mendapatkan ini
AAA
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
contoh lain (ingin mencetak hingga KJGFGHJ)
cat file.txt1
HG
KJGFGHJ
KKKK
jadi saya harus mendapatkannya
HG
KJGFGHJ
sed
:sed '/PPP/q' infile
awk
, jadi saya tidak memberikan alat lain.1
seperti{print $0}
. Perhatikan juga bahwa itu//
adalah pola kosong dan hasilnya tidak ditentukan. Ini bekerja digawk
,,mawk
Brian Kernighan versi sendiri tetapi tidak dinawk
,oawk
dari dada alat pusaka.Atau gunakan pola rentang yang cocok dengan baris pertama (NR sama dengan 1) hingga pertandingan pertama 'PPP' dalam satu baris
jika garis harus sama persis hanya menggunakan 'PPP'
Jika Anda ingin melakukan hal yang sama untuk setiap file dalam daftar argumen, gunakan variabel FNR yang ulang ke 1 untuk baris pertama dari setiap file yang diproses
sumber
Seperti OP mengatakan baris pertama atau kata file dapat berisi kata apa saja (seperti
PPP
itu sendiri), jadi Anda perlu memeriksa itu dan menilai baris pertama agar tidak cocok dan menghindariawk
keluar dari sana.Maka Anda dapat mencoba ini:
File input:
Perintah:
Keluaran:
sumber