linux一次三行显示文件内容,Linux 命令合集(二):查看文件及内容处理命令

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

命令格式

cat [参数] [文件名]

命令参数

-n:对所有行进行编号

-b:对所有非空行进行编号

-s:压缩多行非空行为一行非空行

-T:tab缩进用 ^I 表示

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

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

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

例4.cat >cat.log<

例5.tac 示例:tac cat.log

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

命令格式

cut [参数] [文件名]

命令参数

-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:分割大文件为多个小文件

命令格式

split [参数] [文件名]

命令参数

-a:指定分割后文件的后缀长度

-C:按指定大小分割文件

-l:按指定行数分割文件

-d:使用数字作为后缀

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

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

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

命令格式

paste [参数] [file1] [file2]

命令参数

-d:指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @

-s:将每个文件合并成行而不是按行粘贴

-:使用标准输入。例如ls |paste -d " " - -,意即只在一列上显示输出

例一:

例二:

例三:

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

命令格式

sort [参数] [file]

命令参数

-b:忽略每行开始处的空白字符

-c:检查文件是否被排过序

-d:排序时只处理英文字符,数字和空格

-f:排序时将小写字母视为大写字母

-m:将几个排序好的文件进行合并

-M:将前面三个字母按照月份的缩写进行排序

-n:依照数值的大小排序

-r:以相反的顺序进行排序

-t:指定排序时的列分隔符

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

六、uniq:去除重复行

命令格式

uniq [参数] [file]

命令参数

-c:相同行数出现的次数

-d:仅显示重复出现的列

-u:仅显示出现一次的列

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

命令格式

wc [参数] [file]

命令参数

-l:统计行数

-w:统计单词数

-c:统计字符数

八、grep/egrep:过滤字符串

命令格式

grep/egrep [参数] [file]

建议使用别名:alias grep='egrep -i --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'

命令参数

-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 <

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:替换或者删除字符

命令格式

tr [参数] [file]

命令参数

-c:指定字符范围的补集

-d:删除指定范围的字符

-s:把多个重复的字符压缩为一个

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

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

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

十、其它命令

more(less):分页显示文件内容

head(tail):显示文件内容头部

join:将两个文件中,制定栏位内容相同的行连接起来

iconv:转换文件编码格式

dos2unix:将dos文件格式转换为Unix格式

diff(vimdiff):比较文件差异

rev:反向输出文件内容

你可能感兴趣的:(linux一次三行显示文件内容)