1:cat -s:压缩空白行;移除空白行 cat test.txt| tr ‘\n‘ ‘‘;
cat -T:将制表符显示为^I;
cat -n:显示行号
2:find :
-name :根据文件名或正则表达式匹配;find . \( -name "*.txt" -o -name "*.py" \) -print
-path:根据路径匹配;
-maxdepath和-mindepath基于目录深度搜索;
-type f(d\c\l等)文件类型;find . -type f -print
-perm:文件权限;find . -perm 644 -print
-size:文件大小(k\m\g\b\c等)find . -size +2k -print
-user:文件的属主;find . -user root -print
-prune:排除 find . \( -path ./old -prune \) -o \( -name "*.txt" -print \)
3:文件的校验(sha1sum和md5sum格式一致)
在同一目录中通过 md5sum file >file.md5得到md5校验文件;然后md5sum -c file.md5比较是否一致;根据file.md5中的内容自动比较源文件md5,不需要和源文件同名。
递归计算校验和: find /etc/ -type f -print0 | xargs -0 md5sum >>dir.md5
4:sort :
-n:按数字排序
-r:按逆序排序
-M:按月份排序
-k:按第几列排序
-z:以\0作为终止符和xargs -0相符
-C:是否排序
5:uniq:消除重复行,文件必须先排序过
-c:统计各行出现的次数
-d:找出重复的行
-z:产生\0为终止符和xargs -0相兼容
如:uniq -z file.txt | xargs -0 rm
6: 临时文件名的生成:$$当前进程号。如: file-$$.txt
7: 分割文件:
dd if=/dev/zero of=/tmp/date.txt count=10M bs=10
split -b 1m date.txt -d -a 4 (file)以1M每个文件大小分割文件,并以后缀定长为4。(前缀为file,默认为)
8:根据扩展名匹配:
${var%.*}从右到左匹配,匹配结果删除。如var=simple.jpg;则结果为var=simple。
${var#*.}从左到右匹配,匹配结果删除。如var=simple.jpg;则结果为var=jpg。
${var%%.*}和${var##*.}为贪婪匹配;使用更多。