Saya memiliki file seperti ini:
ID A56
DS /A56
DS AGE 56
Dan saya ingin mencetak seluruh baris hanya jika kolom kedua dimulai dengan huruf kapital.
Hasil yang diharapkan:
ID A56
DS AGE 56
Apa yang telah saya coba sejauh ini:awk '$2 ~ /[A-Z]/ {print $0}' file
Mencetak semuanya:huruf kapital ditemukan di kolom kedua.
awk '$2 /[A-Z]/' file
Mendapat kesalahan sintaks.
Jawaban yang Diterima:
Anda dapat menggunakan awk
seperti yang disarankan @cuonglm, atau
-
grep GNU
grep -P '^[^s]+s+[A-Z]' file
-
Perl
perl -lane 'print if $F[1]=~/^[A-Z]/' file
-
sed GNU
sed -rn '/^[^s]+s+[A-Z]/p' file
-
shell (mengasumsikan versi terbaru dari ksh93, zsh atau bash)
while read -r a b; do [[ $b =~ ^[A-Z] ]] && printf "%s %sn" "$a" "$b"; done < file
Mengapa Ekspansi Variabel Tanpa $ Bekerja Dalam Ekspresi?
(sebaiknya Non-kludgey) Cara Menghindari Koreksi Ejaan Saat Menggunakan Perintah `mv` Zsh?