1、ls命令
要显示当前文件夹下的文件列表时,我常常就使用ls命令的下面三个參数。
-l 使用长列表格式
-h 文件大小以人可读的方式打印
-t 以最后改动时间排序,最新的放在最前
使用样例,怎样显示当前文件夹下的文件夹?
方法1: ls -l | grep '^d'
方法2: ls -l | awk '/^d/'
2、grep命令
当须要找出匹配指定模式的文件时,常常会用到grep命令的下面几个參数。
-w 全然匹配整个单词,而不是字符串的一部分,若要匹配abc,则不会匹配abcd
-i 忽略大写和小写
-n 显示指定模式在匹配文件里的行号
-v 反向匹配,即匹配不符合的行
-f 从文件里获取待匹配的模式
使用样例:
grep ^$ file 匹配文件file中的全部空行
grep -v '^$' file 匹配文件file中的全部非空行
grep '[^^$]' file 匹配文件file中的全部非空行
grep -vf t2 t1 获取t1中跟t2数据不匹配的数据,即获取在t1,但不在t2的数据
正則表達式[^$]表示匹配空行,前面加上^即表示不匹配空行
3、排序去重命令 sort vs uniq
sort 命令用来对数据进行排序。
-t 用于指定域的分隔符
-n 以数字方式进行比較,而不是字符比較
-r 反向排序
-u 去除反复的行
-k 以指定的域開始进行排序,域从1開始
+表示以第几域排序,-表示不以第几域排序,如 sort +0 -2 +3则表示以第0域開始排序,略过第2域,然后再使用第3域排序
uniq 用于删除文本文件里的连续反复的行,一般使用sort之后再调用uniq。
-d 仅显示反复一次的行
-c 打印每一反复行出现的次数
sort -u 和uniq的差别在于,uniq仅去除连续反复的行,而sort -u会去除整个文本中全部反复的行,比如,
#源文件file1中的内容
hello world
Good morning
Good morning
hello world
#使用sort -u < file1的结果例如以下:
hello world
Good morning
使用uniq < file1的结果例如以下:
hello world
Good morning
hello world
4、tr命令
当须要进行一些简单的字符串替换和删除时,tr命令就会显得很实用。
比如,以下的tr操作都是没有直接改动源文件,改动则须要文件重定向
tr 'A-Z' 'a-z' < file 将字符串的大写字母都转为小写字母:
tr -s ' ' ' ' < file 把多个连续空格替换成单个空格,-s选项可将多个连续字符替换为一个指定字符
tr -s '\n' < file 删除空行
tr -d '[0-9]' < file 删除全部数字,-d选项能够删除指定的字符