一.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.' ^'指匹配字符串在行首,'$'指匹配的字符串在行尾