Linux 命令合集(二):查看文件及内容处理命令

一、cat(tac):(倒序)查看文件内容

  1. 命令格式
cat [参数] [文件名]
  1. 命令参数
  -n:对所有行进行编号
  -b:对所有非空行进行编号
  -s:压缩多行非空行为一行非空行
  -T:tab缩进用 ^I 表示

例1: cat -n:对所有行进行编号



:例2. cat -b:对所有非空行进行编号



例3.cat -sn:压缩多行非空行为一行非空行

例4.cat >cat.log<<EOF:将标准输入的内容写入到文件中;输入EOF结束



例5.tac 示例:tac cat.log

二、cut:将文件的每一行按指定分隔符分割并输出

  1. 命令格式
cut [参数] [文件名]
  1. 命令参数
-c:仅显示行中指定范围的字符(如"-c-5","-c1-5","-c5-"等)
-d:指定字段的分隔符,默认是"TAB"
-f:显示指定字段的内容
--complement:不显示符合条件的列或字符

例一:显示文件的前五个字符

cut -c-5 /etc/passwd # "-c-5","-c1-5" 都表示前五个字符,"-c5-"表示从第五个字符开始显示到最后一个字符

例二:不显示符合条件的列

cut -d":" -f2,3,4,5,6 --complement /etc/passwd

三、split:分割大文件为多个小文件

  1. 命令格式
split [参数] [文件名]
  1. 命令参数
-a:指定分割后文件的后缀长度
-C:按指定大小分割文件
-l:按指定行数分割文件
-d:使用数字作为后缀

例:按1M大小分割文件并指定分割后的文件名

split -C 1M test.txt -d -a 2 test

四、paste:按行合并文件内容

  1. 命令格式
paste [参数] [file1] [file2]
  1. 命令参数
-d:指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @
-s:将每个文件合并成行而不是按行粘贴
-:使用标准输入。例如ls |paste -d " " - -,意即只在一列上显示输出

例一:



例二:



例三:

五、sort:对文件的文本内容排序

  1. 命令格式
sort [参数] [file]
  1. 命令参数
-b:忽略每行开始处的空白字符
-c:检查文件是否被排过序
-d:排序时只处理英文字符,数字和空格
-f:排序时将小写字母视为大写字母
-m:将几个排序好的文件进行合并
-M:将前面三个字母按照月份的缩写进行排序
-n:依照数值的大小排序
-r:以相反的顺序进行排序
-t:指定排序时的列分隔符

例:忽略每行开始处的空白字符,对第二域按数字大小进行排序


六、uniq:去除重复行

  1. 命令格式
uniq [参数] [file]
  1. 命令参数
-c:相同行数出现的次数
-d:仅显示重复出现的列
-u:仅显示出现一次的列

七、wc:统计文件的字符数,单词数和行数

  1. 命令格式
wc [参数] [file]
  1. 命令参数
-l:统计行数
-w:统计单词数
-c:统计字符数

八、grep/egrep:过滤字符串

  1. 命令格式
grep/egrep [参数] [file]
    建议使用别名:alias grep='egrep -i --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'
  1. 命令参数
-a:不要忽略二进制的数据。   
-A <显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。      
-B <显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。   
-c:计算符合样式的列数。   
-C <显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。    
-H:在显示符合样式的那一行之前,显示该行所属的文件名称。   
-i:忽略字符大小写的差别。      
-L:列出文件内容不符合指定的样式的文件名称。   
-n:在显示符合样式的那一行之前,标示出该行的列数编号。   
-q:不显示任何信息。   
-r:递归搜索目录
-s:不显示错误信息。   
-v:显示不包含匹配文本的所有行。   
-w:只显示全字符合的列。   
-x:只显示全列符合的列。

正则表达式

^:匹配输入字符串的开始位置
$:匹配输入字符串结尾的位置
^$:匹配空白行
.:匹配任意单个字符
*:匹配紧挨着的前面的字符任意次
.*:匹配任意字符串
?:匹配紧挨着的前面的字符串0次或1次
+:匹配紧挨着的前面的字符串1次或多次
\:转义字符
|:指明两项或多项之间的一个选择
{m,n}:匹配紧挨着的前面的字符m到n次
{,m}:匹配紧挨着的前面的字符0次到m次
{m,}:匹配紧挨着的前面的字符最少m次
():标记一个子表达式的开始和结束位置,\1表示第一个子表达式
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符

grep支持的字符和字符集合

\d:数字字符匹配。等效于 [0-9]。
\s:匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。
\S:匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效
\w:匹配任何字类字符,包括下划线。与“[A-Za-z0-9_]”等效。
\W:与任何非单词字符匹配。与“[^A-Za-z0-9_]”等效。
[:digit:]:所有数字, 相当于0-9 或者\d
[:lower:]:所有的小写字母
[:upper:]:所有的大写字母
[:alpha:]:所有的字母
[:alnum:]:相当于[0-9a-zA-Z]
[:space:]:空白字符 相当于\s
[:punct:]:所有标点符号

例一:显示meminfo文件中以不区分大小的s开头的行



例二:显示/etc/passwd中,以r开头的字符而后跟了任意单个字符的行



例三:显示/etc/passwd中,r后跟了o,o出现最少一次

例四:显示/etc/passwd中,r后跟了o,o只出现2次的行


例五:显示meminfo文件中以一个数字开头并以一个与开头数字相同的数字结尾的行



例六:匹配ABC类IP地址即 1.0.0.1---223.255.255.254

cat > ip.txt <<EOF
1.0.0.254
1.0.0.255
1.2.3.4
223.255.255.254
224.255.255.252
2.255.255.255
EOF
egrep "^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$" ip.txt

例七:匹配手机号码:手机号码是1[3|4|5|8]后面接9位数字的

cat > tel.txt << EOF
13690876890
12589098379
15608764083
15820974619
138074082711
18618203761
19209783900
1329873909
EOF
egrep -x  "1[3|4|5|8][0-9]{9}" tel.txt

九、tr:替换或者删除字符

  1. 命令格式
tr [参数] [file]
  1. 命令参数
-c:指定字符范围的补集
-d:删除指定范围的字符
-s:把多个重复的字符压缩为一个

例一:将大写字符转换为小写字符



例二:删除指定范围的字符


例三:删除指定范围字符的补集


十、其它命令

 more(less):分页显示文件内容
 head(tail):显示文件内容头部
 join:将两个文件中,制定栏位内容相同的行连接起来
 iconv:转换文件编码格式
 dos2unix:将dos文件格式转换为Unix格式
 diff(vimdiff):比较文件差异
 rev:反向输出文件内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342