V1rtus Ak1ame
关注数: 17 粉丝数: 9 发帖数: 186 关注贴吧数: 16
Linux工具快速教程 基础3 find 文件类型查找 find . \( -name "*.txt" -o -name "*.pdf" \) -print 加入正则find . -regex ".*\(\.txt|\.pdf\)$" 按时间搜索 -atime 访问时间 (单位是天,分钟单位则是-amin,以下类似) -mtime 修改时间 (内容被修改) -ctime 变化时间 (元数据或权限变化) 按权限查找: find . -type f -perm 644 -print //找具有可执行权限的所有文件 按用户查找: find . -type f -user weber -print// 找用户weber所拥有的文件 Find后删除 find . -type f -name "*.swp" -delete 执行 find . -type f -user root -exec chown weber {} \; grep grep match_patten file // 默认访问匹配行 常用参数 -o 只输出匹配的文本行 VS -v 只输出没有匹配的文本行 -c 统计文件中包含文本的次数 grep -c “text” filename -n 打印匹配的行号 -i 搜索时忽略大小写 -l 只打印文件名 在多级目录中对文本递归搜索: grep "class" . -R -n xargs 命令行参数转换 将单行转化为多行输出 cat single.txt | xargs -n 3 sort排序 -n 按数字进行排序 VS -d 按字典序进行排序 -r 逆序排序 -k N 指定按第N列排序 示例: sort -nrk 1 data.txt sort -bd data // 忽略像空格之类的前导空白字符 Tr转换 echo 12345 | tr '0-9' '9876543210' //加解密转换,替换对应字符 cat text| tr '\t' ' ' //制表符转空格 cat file | tr -d '0-9' // 删除所有数字 tr -s 压缩文本中出现的重复字符;最常用于压缩多余的空格: cat file | tr -s ' ' Cut按列切分文本 截取文件的第2列和第4列 cut -f2,4 filename 去文件除第3列的所有列 cut -f3 --complement filename -d 指定定界符 cat -f2 -d";" filename cut 取的范围 N- 第N个字段到结尾 -M 第1个字段为M N-M N到M个字段 cut 取的单位 -b 以字节为单位 -c 以字符为单位 -f 以字段为单位(使用定界符) Sed文本替换 首处替换 sed 's/text/replace_text/' file //替换每一行的第一处匹配的text 全局替换 sed 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i: sed -i 's/text/repalce_text/g' file 子串匹配标记 第一个匹配的括号内容使用标记 1 来引用 sed 's/hello\([0-9]\)/\1/' 双引号求值 sed通常用单引号来引用;也可使用双引号,使用双引号后,双引号会对表达式求值: sed 's/$var/HLLOE/' Awk数据流处理工具 工作方式 1.执行begin中语句块; 2.从文件或stdin中读入一行,然后执行statements2,重复这个过程,直到文件全部被读取完毕; 3.执行end语句块; echo -e "line1\nline2" | awk 'BEGIN{print "start"} {print } END{ print "End" }' 特殊变量: NR NF $0 $1 $2 使用getline,将外部shell命令的输出读入到变量cmdout中: echo | awk '{"grep root /etc/passwd" | getline cmdout; print cmdout }' awk结合grep找到指定的服务,然后将其kill掉 ps -fe| grep msv8 | grep -v MFORWARD | awk '{print $2}' | xargs kill -9; 打印指定文本区域 确定行号 seq 100| awk 'NR==4,NR==6{print}' 确定文本 打印处于start_pattern 和end_pattern之间的文本: awk '/start_pattern/, /end_pattern/' filename 示例: seq 100 | awk '/13/,/15/' cat /etc/passwd| awk '/mai.*mail/,/news.*news/'
1 下一页