sed之大小寫轉換

轉載這個主要原因是這裏對\u\U的一些解釋,因爲在網上很少關於\u\U 字符的介紹
不知道在哪本書上有關於這2個字符的介紹?

轉載自:http://blog.chinaunix.net/uid-10540984-id-2014878.html
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. 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章