標籤:des ar os 使用 sp 檔案 資料 div on
uniq
| -i |
忽略大小寫 |
| -c |
進行計數 |
| -fN |
前 N 個地區被忽略 |
wc
行 字數 字元數
| -l |
僅列出行 |
| -w |
僅列出多少字 |
| -m |
多少字元 |
cut
| -d |
後接分割字元,與-f 一起使用 |
| -f |
用-f 去第幾段 |
| -c |
以字元的單位取出固定字元區間 |
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:
echo $PATH | cut -d ‘:‘ -f2
/usr/bin
echo $PATH | cut -d ‘:‘ -f2,5
/usr/bin:/usr/sbin
echo $PATH | cut -d ‘:‘ -f2-5
/usr/bin:/bin:/usr/local/sbin:/usr/sbin
echo $pATH | cut -c1-4
/usr/lo
sort
| -f |
忽略大小寫差異 |
| -b |
忽略最前面的空格符部分 |
| -M |
以月份的名字來排序. |
| -n |
使用純數字 |
| -r |
反向排序 |
| -u |
uniq,相同的資料,僅出現一行代表 |
| -t |
分隔字元,預設是 tab |
| -k |
以那個區間(field)來排序(與-t 搭配) |
| -c |
測試檔案是否已經分類 |
| -m |
合并 2 個分類檔案 |
| -u |
刪除所有複製行 |
| -o |
接儲存的檔案名稱 |
對-k, 也可以是 -k1 -k2, 表示的是先以 第二段來排序, 如果相同就以第二段
tr
cat a.txt | tr -d ‘\r‘ > b.txt
修改 dos 檔案的分行符號 ^M
echo "hello world" | tr [a-z] [A-Z]
HELLO WORLD
echo "hello world" | tr -d o
hell wrld
echo "hello world" | tr o a
hella warld
echo "helllllo world" | tr -s l
helo world
tee 雙重導向
col
| -x |
將 tab 轉換成對等的空格鍵 |
| -b |
在文字內有反斜線/時,僅保留反斜線剛最後接的那個字元 |
cat -A FILE 會出現很多I 符號(tab), 就可以使用轉換成空格功能
join
2 個檔案中, 有相同的資料的那一行, 才加在一起.
| -t |
join 預設以空格分隔資料, 並且比對[第一個欄位]的資料 |
| -i |
忽略大小寫差異 |
| -o |
join -o 1.1 2.2 FILE1 FILE2,只取 1 2 |
| -j |
join -j1 3 -j2 2 FILE1 FILE2, 取 3 和 2 部分 |
| -1 |
表示第一個檔案要用那個欄位來分析 |
| -2 |
表示第二個檔案要用那個欄位來分析 |
cat a
111 2222
cat b
22222 2222
cat c
111 3333
join a b
沒有結果
join -1 2 a -2 2 b
2222 111 3333
join -1 2 b -2 2 b
2222 3333 111如果第一個檔案的第二個欄位和第二個檔案的第二個欄位相同就 join
join -1 1 a -2 1 c
111 2222 3333
join -t ‘:‘ /etc/passwd /etc/shadow
將 2 個檔案第一欄位相同者整合成一行
join -t ‘:‘ -1 4 /etc/passwd -2 3 /etc/group
將第一個檔案的第四個欄位和第二個檔案的第三個欄位比較,相同就整合成一行.在使用 join 之前, 檔案應該要實現經過排序,否則有些比對的項目會被忽略.
paste
| -d |
後接分隔字元, 預設是[tab] |
| -s |
將檔案變成一行 |
paste /etc/passwd /etc/shadowcat /etc/group | paste /etc/passwd /etc/shadow - | head -n 3
split
| -b |
接欲分割成的檔案大小,可加單位 b k m |
| -l |
以行數來進行分割 |
PREFIX 代表前置字元的意思,可作為分割檔案的前置文字.
split -b 300k /etc/termcap termcap
ll a.txt
-rw-rw-r-- 1 xiang xiang 3.7K Apr 27 15:45 a.txt
split -b 2k a.txt a.txt && ls
a.txt a.txtaa a.txtab
split -b 2k a.txt a && ll
total 40K-rw-rw-r-- 1 xiang xiang 2.0K Apr 27 15:45 aaa-rw-rw-r-- 1 xiang xiang 1.7K Apr 27 15:45 aab
xargs
| -0 |
如果輸入的 stdin 有特殊字元,例如 `, \, 空格鍵等等, 將他還原成一般字元 |
| -e |
EOF 後面可以接一個字串,當 xargs 分析到這個字串時,就會停止繼續工作! |
| -p |
在執行每個指令的 argument 時,都會詢問使用者; |
| -n |
後面接次數,每次 command 指令執行時,使用幾個參數。 |
find -exec COMMAND {} \;
操作是將前面找到的都作為一個參數來執行,而通過 xargs 就會將他們分解
find -type f | xargs file
查看檔案的屬性
ls | xargs cat | grep "cmov"
通過列出所有的檔案, 然後 cat 再用 grep 尋找.
expand
-t 後面可以接數字,將 tab 轉換成空格grep ‘^MANPATH‘ /etc/man* | head - n3 | cat -Agrep ‘^MANPATH‘ /etc/man* | head -n 3 | expand -t 6 | cat -A
經過 expand 之後就沒有I 了, 因為被轉換成了空格.
unexpand 將空格轉換成 tab
grep ‘^MANPATH‘ /etc/man_db.conf | head -n 3| expand -t 12| unexpand -t 1 | cat -A
Linux 筆記--文本