本文介紹tr
(注意不是tar),col
,join
,paste
命令。實際上是管道操作命令的延續,所以我們依然將結合管道來熟悉這些命令的使用。
tr
命令可以用來刪除一段文字資訊中的某些文字,或者將其進行轉換。
使用方式:
tr [option] ... set1 [set2]
常用的選項有:
選項說明
-d刪除和set1匹配的字元,注意不是全詞匹配也不是按字元順序匹配
-s去除set1指定的在輸入文字中連續並重複的字元
#刪除hello world中所有的』o』,』l』,』d』
echo 「hello world」 | tr -d 『old』
#將"hello"中的ll,去重為乙個l
echo "hello" | tr -s 'l'
#將輸入文字,全部轉換為大寫或小寫輸出
echo 'input some text here' | tr '[:lower:]' '[:upper:]'
#上面的'[:lower:]'''[:upper:]',也可以簡單的寫作'[a-z]''[a-z]',當然反過來將大寫變小寫也是可以的
echo 'input some text here' |tr '[:upper:]''[:lower:]'
col
命令可以將tab
換成對等數量的空格鍵,或反轉這個操作
格式:cal [option]
常用的選項:
選項說明
-x將tab轉換為空格
-h將空格轉換為tab(預設選項)
#檢視/etc/protocols中的不可見字元,可以看到很多^i,這其實就是tab轉義成可見字元的符號
cat -a /etc/protocols
該命令就是用於將兩個檔案中包含相同內容的那一行合併在一起。在資料庫中也有該命令,作用基本相同。#使用col -x將/etc/protocols中的tab轉換為空格,然後再使用cat檢視,會發現^i不見了
cat /etc/protocols | col -x | cat -a
使用方式:join [option] ... file1 file2
常用的選項:
選項說明
-t指定分隔符,預設為空格
-i忽略大小的差異
-1指定第乙個檔案要用哪個欄位來對比,預設對比第乙個字段
-2指定第二個檔案要用哪個欄位來對比,預設對比第乙個字段
#建立兩個檔案
echo '1 hello' > file1
echo '2 hello' > file2
join file1 file2
# 將/etc/passwd與/etc/shadow兩個檔案合併,指定以':'作為分隔符
sudo join -t':' /etc/passwd /etc/shadow
# 將/etc/passwd與/etc/group兩個檔案合併,指定以':'作為分隔符, 分別比對第4和第3個字段
sudo join -t':' -1 4 /etc/passwd -2 3 /etc/group
paste
命令有join
命令類似,不過它是在不對比資料的情況下,簡單地將多個檔案合併在一起,以tab
隔開。
使用格式:paste [option] file ...
常用的選項:
選項說明
-d指定合併的分隔符,預設是tab
-s不合併到一行,每個檔案為一行
echo hello > file1
echo shiyanlou > file2
echo www.shiyanlou.com > file3
paste -d 『:』 file1 file2 file3
paste -s file1 file2 file3
windows/dos 與 linux/unix 文字檔案一些特殊字元不一致
如斷行符 windows 為 cr+lf(\r\n),linux/unix 為 lf(\n)。使用cat -a 文字 可以看到文字中包含的不可見特殊字元。linux 的\n表現出來就是乙個,而
wind
ows/
dos的
表現為m
, 而w
indo
ws/d
os的表
現為
m,可以直接使用dos2unix和unix2dos工具在兩種格式之間進行轉換,使用file命令可以檢視檔案的具體型別。
不過現在希望你在不使用上述兩個轉換工具的情況下,使用前面學過的命令手動完成 dos 文字格式到 unix 文字格式的轉換。
tr -d '^m'
簡單的文字處理
這一節我們將介紹這幾個命令tr 注意不是tar col,join,paste。實際這一節是上一節關於能實現管道操作的命令的延續,所以我們依然將結合管道來熟悉這些命令的使用。tr 命令可以用來刪除一段文字資訊中的某些文字。或者將其進行轉換。使用方式 tr option set1 set2 常用的選項有...
簡單的文字處理
tr命令可以用來刪除一段文字資訊中的某些文字。或者將其進行轉換。tr option set1 set2 常用的選項 操作舉例 刪除 hello shiyanlou 中所有的 o l h echo hello shiyanlou tr d olh 將 hello 中的ll,去重為乙個l echo he...
linux之簡單文字處理
1.tr命令 tr 命令可以用來刪除一段文字資訊中的某些文字。或者將其進行轉換。使用方式 選項 說明 d 刪除和set1匹配的字元,注意不是全詞匹配也不是按字元順序匹配 s 去除set1指定的在輸入文字中連續並重複的字元 刪除 hello shiyanlou 中所有的 o l h echo hell...