sed之大小寫轉換


1)

this is a dog!

請把每個單詞的第一個字母替換成大寫。

1. sed 's/\b[a-z]/\u&/g

[解析]

 \b大家應該知道是錨定的意思,說白了就是邊界符,那么這就只會匹配第一個開頭的字母,然后\U的意思在元字符里的解釋是“大寫(不是標題首字符)\E 以前的字符”,而\u只是將下一個字符變為大寫,注意它們的區別噢。

2)

http://www.a.com/aaafkslafjlxcv/fsfa/8/Xxxx.XxXX

把URL中的大寫字符替換成小寫。

1. sed 's/[A-Z]/\l&/g' file

[解析]

 同理\L的意思是使之變為小寫。
1. \# 全文大小寫轉換
2. tr a-z A-Z
3. tr A-Z a-z
4. 
5. \# 大小寫對換
6. echo "aBcDE" | tr '[a-zA-Z]' '[A-Za-z]

3)

比如說:a.txt b.txt c.txt

更名變成 A.txt B.txt C.txt 


1. ls *.txt|sed -nr 's/(.)(\..*)/mv & \u\1\2/e'

[解析]

\u 是轉換后面的內容第一個字母為大寫,\U是全部為大寫直到遇到 \E 為止。這就是區別:



1. echo 'abc'|sed 's/^../\u&/'
2. Abc
3. echo 'abc'|sed 's/^../\U&\E/'
4. ABc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM