Linux学习笔记-文本操作(2) 2018-05-08

echo--响应、创建文件
more--显示文件内容
cat--显示文件内容,合并文件
less--在新窗口查看文件内容,支持翻页和搜索

注:其他命令后接 | less 可用于debug,很好用

file--查看文件编码

file filename

sort--排序
sort filename    #按照开始列-结束列的首字母对所有行排序,
sort -kx,x filename    #按照第x列的首字母对所有行排序
sort -kx,y filename    #按照第x-y列的首字母对所有行排序
sort -kx,xn filename    #x列若为数值,则按照第x列的数值由小到大对所有行排序
sort -k1,1 -k2,2n filename    #先按第1列首字母排序,再按第2列的数值排序
man sort    #查看sort的使用介绍

注: sort默认用空格或tab键作为域(列)分隔符,如果需用其他形式的分隔符,可以用 -t选项指定。

cut--截取列
cut -f m filename    #默认以tab为分隔,截取第m列
cut -f m,n filename    #默认以tab为分隔,截取第m列和第n列
cut -f m-n filename    #默认以tab为分隔,截取第m-n列
cut -f m- filename    #默认以tab为分隔,截取第m列至结束的所有列
cut -f -n filename    #默认以tab为分隔,截取第1-n列的所有列
cut -f m -d "分隔符" filename   #指定分隔符,截取第m列
uniq--报告或去除重复行
uniq filename    #连续的相同行只保留一行
uniq -u filename    #只显示唯一的行
uniq -d filename    #只输出重复的行
uniq -D filename    #显示所有重复的行
man uniq    #查看uniq的使用介绍

注:uniq通常是接在sort后使用

join--连接有共同域的行
  • 一般是先对两文件进行sort排序,然后使用 join命令连接。
join -1  -2       #命令基本语法
join -1 1 -2 1      #将file1和file2的第1列相同的行连起来,file1中某行的第1列未在file2中出现时,则连接结果中会丢失相应行
join -1 1 -2 1 -a 1      #将file1和file2的第1列共同的行连起来,file1文件可以不遵循配对
grep--常用于搜索,支持正则表达式RE
  • grep运行速度快,文本操作中应重点使用,这里只列举几个常用的情况,其他参见 linux里grep和egrep,fgrep的区别、man grep、其他网上资源。
grep "re" filename    #将匹配正则表达式(re)的所有行输出到屏幕
grep -v "re" filename    #将匹配正则表达式(re)之外的所有行输出到屏幕
grep -c "re" filename     #统计匹配正则表达式(re)的所有行的总行数
grep -n "re" filename     #将匹配正则表达式(re)的所有行加上前缀行号
awk--常用于表格,支持正则表达式RE

详见 Linux命令大全-awk

sed--常用于替换,支持正则表达式RE

详见 Linux命令大全-sed

RE--正则表达式
  • RE的详细使用方法见 正则表达式简明参考 和 正则表达式快速入门教程(参考自 正则表达式30分钟入门教程)。

本文参考资料:

  • linux命令行文本操作一文就够
  • 生物信息之独孤九剑专栏合集

你可能感兴趣的:(Linux学习笔记-文本操作(2) 2018-05-08)