Saya memiliki file teks di mana beberapa kata dicetak dalam SEMUA CAPS. Saya ingin bisa mengonversi semua yang ada di textfile menjadi huruf kecil, menggunakan sed
. Itu berarti bahwa kalimat pertama kemudian akan berbunyi, 'Saya memiliki file teks di mana beberapa kata dicetak dalam huruf besar semua.'
131
tr
perintahnya? Terkadang lebih cocok daripadased
.Jawaban:
Dengan
tr
:Bekerja menggunakan GNU
sed
(BSDsed
tidak mendukung\L
\U
):sumber
sed -e 's/.*/\L&/' input.txt > output.txt
untuk GNU, sed juga berfungsi dengan baikman sed
untuk mengetahui versi mana yang Anda gunakan.U
di depan setiap barisJika Anda memiliki ekstensi GNU, Anda dapat menggunakan sed \ L (seluruh kecocokan yang lebih rendah, atau sampai \ L [lebih rendah] atau \ E [end - toggle casing off] tercapai), seperti:
Catatan: '&' berarti pola kecocokan penuh.
Sebagai catatan tambahan, ekstensi GNU meliputi \ U (atas), \ u (karakter kecocokan berikutnya), \ l (karakter kecocokan berikutnya lebih rendah). Misalnya, jika Anda ingin membuat unta kalimat:
Catatan: Karena asumsinya adalah kita memiliki ekstensi GNU, kita juga dapat menggunakan opsi tanda hubung-r (extended regular expressions), yang memungkinkan \ w (karakter kata) dan melegakan Anda karena harus melarikan diri dari kurung tanda kurung dan satu atau lebih quantifier (+). (Selain:
\W [non-word], \s [whitespace], \S [non-whitespace]
juga didukung dengan dasbor-r, tapi\d [digit]
dan\D [non-digit]
tidak.)sumber
sed -ri 's/MATCH_WHATEVER/\L&/i' input-file.ext
- menggunakan/i
pengubah membuat korek api tidak sensitif dan karenanya opsional. The-i
beralih Menceritakan sed untuk mengubah file di tempat. Tidak perlu mengarahkan output ke file lain jika Anda tidak perlu.\E [end - toggle casing off]
. Terima kasih !Anda juga dapat melakukannya dengan sangat mudah
awk
, jika Anda mau mempertimbangkan alat lain:sumber
tolower
tidak akan dapat menanganiÀ
misalnyals | awk '{print "mv " $0 " " tolower($0)}' | sh
Berikut ini banyak solusi:
Untuk upercaser dengan perl, tr, sed dan awk
Untuk huruf kecil dengan perl, tr, sed dan awk
Bash rumit untuk huruf kecil:
Bash rumit ke huruf besar:
Bash sederhana untuk huruf kecil:
Bash sederhana ke huruf besar:
Perhatikan bahwa $ {v,} dan $ {v ^} hanya mengubah huruf pertama.
Anda harus menggunakannya seperti itu:
sumber
Keluaran:
sumber
Saya suka beberapa jawaban di sini, tetapi ada perintah sed yang harus melakukan trik pada platform apa pun:
Bagaimanapun, mudah dimengerti. Dan mengetahui tentang perintah y kadang bisa berguna.
sumber
Jika Anda menggunakan sed posix
Pilihan untuk setiap kasus untuk suatu pola (mengonversi pola yang dicari dengan sed ini daripada menggunakan pola yang dikonversi dalam perintah yang Anda inginkan menggunakan regex:
konversi dalam huruf kecil
sama untuk huruf besar, ganti huruf kecil antara // dengan ekuivalen atas di sed
Selamat bersenang-senang
sumber
y//
perubahan konten sumber atau bisa ketinggalan pencarian pola.pendek, manis dan Anda bahkan tidak perlu pengalihan :-)
sumber