如果我有一个用逗号作为分隔符的文本文件,我该如何计算分隔符并在第三个分隔符上从小写变为大写? 如果我有这样的文本文件:
alex pallex, bakerstreet 5, 87236, ducktales, 213445
Donald Duck, weebfoot street 1313, 12345, duckburg, 212344
我想在第三个逗号后在字符串上使用大写字母,我该如何使用sed做到这一点。 Ducktales从DUCKTALES och Duckburg更改为DUCKBURG 我知道有AWk,但我需要使用sed。
答案 0 :(得分:2)
使用awk:
$ awk 'BEGIN{FS=OFS=", "}{$4=toupper($4)}1' file
alex pallex, bakerstreet 5, 87236, DUCKTALES, 213445
Donald Duck, weebfoot street 1313, 12345, DUCKBURG, 212344
答案 1 :(得分:1)
使用GNU sed
:
$ sed 's/[^,]*/\U&/4' file
alex pallex, bakerstreet 5, 87236, DUCKTALES, 213445
Donald Duck, weebfoot street 1313, 12345, DUCKBURG, 212344
答案 2 :(得分:0)
$ cat file.txt
alex pallex, bakerstreet 5, 87236, ducktales, 213445
Donald Duck, weebfoot street 1313, 12345, duckburg, 212344
$ sed 's/\([^\,]*\,[^\,]*\,[^\,]*\,\)\([^\,]*\)/\1\U\2/' file.txt
alex pallex, bakerstreet 5, 87236, DUCKTALES, 213445
Donald Duck, weebfoot street 1313, 12345, DUCKBURG, 212344
不确定是否无法进行转义,但是您可以尝试:
sed 's/\([^,]*,[^,]*,[^,]*,\)\([^,]*\)/\1\U\2/' file.txt
无论如何,这很麻烦,如果您使用GNU sed,PesaThe's answer很棒。