GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengubah teks tertentu dari daftar menjadi huruf besar?

Anda berlebihan, manfaatkan struktur file Anda agar tetap sederhana!

Jika kita menemukan string [United dalam satu baris, menghurufbesarkan semuanya mulai dari kurung kurawal hingga akhir baris memberikan hasil yang Anda cari. Menerjemahkan ini ke dalam bahasa Sed,

sed '/\[United/s/].*/\U&/' file

Perhatikan bahwa hal di atas khusus untuk GNU Sed. Jika tidak tersedia tetapi dalam sistem POSIX, Anda dapat menggunakan Ex (atau lihat versi Awk αғsнιη) dengan sintaks serupa:

printf '%s\n' 'g/\[United/s/].*/\U&/' '%p' | ex file

Untuk menyimpan perubahan ke file alih-alih mencetak hasilnya, ubah %p ke x .


Menggunakan awk :

awk -F"[][]" '$2 ~/^United/ { $2="["$2"]"; $3=toupper($3); }1' OFS='' infile

dalam [...] kita mendefinisikan keduanya ] dan [ sebagai pemisah bidang lalu memeriksa bidang kedua jika dimulai dengan United teks, jika ya maka tambahkan kembali [] sekitar kolom kedua (saya berasumsi tidak ada kolom lain yang memiringkan karakter ini, jika tidak, kolom tersebut akan melewatkan ini); lalu kami mengonversi kolom ketiga menjadi nilai huruf besar; idiom 1 adalah pemicu awk cetak default (semacam kondisi yang selalu benar).


Linux
  1. Cara mengonversi file teks dari Shift JIS ke UTF-8 dan kembali dari terminal

  2. File khusus Linux (mv atau cp) dari daftar teks file?

  3. Cara mengonversi file TAR menjadi file ISO

  1. Bagaimana Mengonversi File Excel Menjadi File Calc Dari Baris Perintah?

  2. Bagaimana membedakan biner dari file teks di linux

  3. Bagaimana cara menghapus baris baru dari file teks?

  1. Bagaimana saya bisa menemukan file tertentu dari terminal Linux?

  2. Bagaimana cara membagi satu file teks menjadi beberapa file *.txt?

  3. Bagaimana cara mengonversi image disk Linux menjadi file jarang?