每天一個 Linux 命令: tr 命令

1. 命令簡介

tr(translate)用來轉換或者刪除一段文字。tr 所有的功能均可由 sed 來完成,可以將 tr 視爲 sed 一個極簡的實現。

2. 命令格式

tr [OPTIONS] SET1 [SET2]

3. 選項說明

-c, -C, --complement SET1 [SET2]
 將字符集 SET1 以外的其他字符刪除或者轉換爲字符集 SET2 中的最後一個字符(如果你指定了多個字符的話)
-d, --delete
 刪除 SET1 這個字符串
-s, --squeeze-repeats
 如果 SET1 中的字符連續出現多次,壓縮重複的字符,只保留一個
-t, --truncate-set1
 先將 SET1 的長度截爲和 SET2 相等
--help
 顯示幫助信息並退出
--version
 顯示版本信息並退出

4. 常用示例

(1)將 last 輸出的信息中所有小寫的字符變成大寫字符。

last | tr [a-z] [A-Z]

(2)將 /etc/passwd 輸出的信息中的冒號 : 刪除。

cat /etc/passwd | tr -d ':'

(3)將 DOS 文件轉成 Unix 文件。

cat /etc/passwd | tr -d '\r'

(4)刪除空行。

cat file | tr -s "\n" > new_file

(5)將文件中 “abc” 分別替換爲 “xyz” 中對應的字符。

cat file | tr "abc" "xyz" > newFile

注意:這裏凡是在 file 中出現的 "a" 字母,都替換成 "x" 字母,"b" 字母替換爲 "y" 字母,“c"字母替換爲"z"字母,而不是將字符串"abc"替換爲字符串"xyz”。

(6)替換指定字符集以外的字符。

echo -n "alv blv" | tr -c "lv " "x"
xlv xlv

echo -n 表示不輸出換行符。

(7)從輸入文本中將不在補集中的所有字符刪除。

echo -n "alv blv" | tr -dc "lv"
lvlv

轉自:戀貓大鯉魚 dablelv.blog.csdn.net/article/details/80223771

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Ffga7Ws4lPmJGeayB0bERQ