【Linux】命令行学习笔记(一)文本处理

原文见https://linuxtools-rst.readthedocs.io/

find – find dir [options]

  • -regex:使用正则表达式匹配
  • -name:使用命令行pattern匹配
  • -maxdepth:指定最大搜索深度,1表示仅在当前目录中查找
  • -type:f l d,指定文件类型
  • -atime, -mtime, ctime:分别是访问、修改、变化时间
  • -size:大小,+ -表示大于小于,k M G表示单位
  • -perm:权限,如644
  • -user:后接用户
  • -delete:后接,可以删除找到的文件,等同于find xxxxx | xargs rm
  • -exec:后面紧跟命令,命令中的{}会被替换成相应的文件名

grep – grep [options] pattern file

  • -o, -v:输出匹配的/不匹配的文本行
  • -c:count,输出匹配的次数
  • -n:输出匹配行号
  • -i:忽略大小写
  • -l:只打印文件名
  • -e:后接pattern,可以用多个-e匹配多个模式
  • -f:后接file
  • -r, -R:递归查找。与-R不同的是,-r不解析符号链接。
  • 正则表达式参数:-G 普通正则表达式;-E 扩展正则表达式;-P Perl正则表达式;-F 以原字符串匹配

xargs – xargs [options] [command]

  • -d:delimiter,它将输出文本划分为若干字段
  • -n:指定每行输出的字段数,例如-n 1就是一行一个
  • -I {}:后面可接命令,xargs产生的参数会替换{}
  • -0:以0为delimiter,同-d 0

sort

  • -n:number,按数字排序
  • -d:dictionary,按字典序排序
  • -r:逆序
  • -k N:按第N列排序

uniq

  • 默认:消除重复行,例如cat test.txt | uniq。可以使用POSIX中的字符类,例如[:digit:]
  • -c:统计各行出现的次数
  • -d:找出重复行

tr – 字符串操作

  • 替换:tr oldstr newstr
  • 删除:-d

cut – 按列切分文本

  • -d:delimiter
  • -f:取第几行,例如-f2,4就是第2、4行
  • –complement:取补集

paste – 按列拼接文本

  • paste file1 file2 -d ","

awk

  • 迭代每一行:cat file | awk '{print}'

发表评论

您的电子邮箱地址不会被公开。