一.cat
1.cat file1 file2 file3…
2.使用管道從標準輸入中讀取:
echo “Hadoop hive!” | cat –file.txt
3.壓縮空白行
(1)壓縮多個連續空白行為單個
cat -s file
(2)移除空白行
cat file.txt | tr -s ‘\n’
4.cat -T file; 顯示定位字元為^
5.cat -n file; 顯示行號
二.錄製與回放終端回話
script -t 2> timing.log -aoutput.sessin
…
exit
scriptreplay timing.log output.session
三.find
1.沿著檔案階層往下遍曆,匹配合格檔案。
2. find . –print;
-print是使用’\n’作為分隔字元的定界符,-print0指明使用’\0’作為定界符。
-name指定了檔案名稱所匹配的字串,-iname則忽略大小寫
find /usr/local -name “*.txt” -print
find . ! -name “*.txt” -print; 。含有否定的意思,不以txt結尾的檔案名稱
find . \(-name “*.txt” –o –name “*.pdf” \)–print
find /usr/local -path “*.txt” -print
3.基於目錄深度、檔案類型的搜尋
Find . –maxdepth 1–type f -print
Find . –mindepth 2 -type f -print
-type可以對搜尋檔案過濾
普通檔案 |
f |
符號連結 |
l |
目錄 |
d |
字元裝置 |
c |
塊裝置 |
b |
通訊端 |
s |
Fifo |
p |
4.基於檔案時間的搜尋
訪問時間:-atime ,-amin
修改時間:-mtime ,-mmin
變化時間:-ctime, -cmin
find . –type f –atime +7 –print;列印訪問時間超過7天的所有檔案
-newer:找出比參考檔案更新的(更長的修改時間的)所有檔案
find . –type f -newer file.txt -print
5.基於檔案大小的搜尋
find . –type f -size +2k
6.刪除匹配檔案
find . –type -f –name “*txt” –delete
7.基於檔案許可權和所有權的匹配
find . –type f -perm 666 –print
8.找某個特定使用者所擁有的檔案
find . –type f -user cw -print
9.find 與 –exec{}合用
find . –type f –name“*.txt” –exec cp {} /usr/local \;
find . –type f –name”*.pdf” –exec printf”text file: %s\n”{} \;
find . type f –name “*.cpp” –exec cat {} \;>all.out
四.xargs
1.xargs擅長將標準輸入資料轉化為命令列參數
2.將多行輸入轉換成單行輸出
cat file.txt | xargs
3.將單行輸入轉化為多行輸出
cat file.txt | xargs –n 4
4.使用定界符分割參數
echo “splitXshellXhadoop”| xargs –d X -n 2
cat file.txt |xargs -n 2 ./demo.sh;//將file中的資料以每次2個傳遞給demo.sh作為參數。
五.tr轉換命令
1.tr只能通過stdin,而無法通過命令列參數來接受輸入
2.將輸入字元由大寫轉為小寫
echo “HELLO” | tr ‘A-Z’ ‘a-z’
echo 1234 | tr ‘0-9’ ‘9876543210’
cat file.txt | tr ‘\n’ ‘’
3.指定要刪除的字元集合
cat file.txt | tr –d ‘0-9’
4.刪除補集-c
echo “hello 1 hive3 hadoop2”| tr –d –c ‘0-9 \n’;
刪除集合之外的所有字元
5.tr壓縮字元-s
echo “gun is not right?” | tr –s ‘ ‘;壓縮空格
將檔案中的數字相加
Cat sum.txt
1
2
3
4
cat sum.txt | echo$[$(tr ‘\n’ ‘+’ ) 0];尾部多了個+號所有加0.
六.sort
1.sort file1.txt file2.txt > sort.txt
2.sort -n file.txt;按數字排序
3.sort -r file.txt;逆序排序
4.sort -M file.txt;按月份排序
5.sort -m sort1.txt sort2.txt;對合并後的檔案合并,不再排序
6.sort -k 2 file.txt;對第二列排序
7.sort -nrk 1 file.txt;對第一列逆序按數字排序
七. grep
grep用於在檔案中搜尋指定的字串
1. 搜尋目錄下帶字串bin的檔案
Grep bin *
2. 明確要求搜尋子目錄;grep -r
3. 忽略子目錄:grep -d skip
4. 不區分大小寫地搜尋:grep -i pattern files
5. 只列出匹配的檔案名稱:grep -l pattern files
6. 列出不匹配的檔案名稱:grep -L pattern files
7. 只匹配整個單詞而不是字串的一部分:grep -W pattern files
8. 匹配的上下午分別顯示[number]行:grep –C number pattern files
9. 顯示匹配pattern1或pattern2的行:grep pattern1 | pattern2 files
10. 顯示兩者都匹配的行:grep pattern1 files | grep pattern2
11. \<和\>分別標註單詞的開始和結尾
12.' ^'指匹配字串在行首,'$'指匹配的字串在行尾