3.14 wc:统计文件的行数、单词数或字节数
wc命令用于统计文件的行数、单词数或字节数。
-c 统计字节数
-w 统计单词数
-l 统计行数
-L 打印最长行的长度
-m 统计字符数
查看文件的字节数、字数、行数等
[root@cs7-sm ~]# wc /etc/inittab
17 80 511 /etc/inittab
[root@cs7-sm ~]# wc /etc/inittab
17 80 511 /etc/inittab
[root@cs7-sm ~]# wc -c /etc/inittab
511 /etc/inittab
[root@cs7-sm ~]# wc -l /etc/inittab
17 /etc/inittab
[root@cs7-sm ~]# wc -m /etc/inittab
511 /etc/inittab
[root@cs7-sm ~]# wc -w /etc/inittab
80 /etc/inittab
[root@cs7-sm ~]# wc -L /etc/inittab
86 /etc/inittab
选项-L的使用
[root@cs7-sm ~]# for word in I am oldboy teacher welcome to oldboy training class.;do [ `echo $word|wc -L` -le 6 ] && echo $word;done
I
am
oldboy
to
oldboy
class.
查看登录系统的用户数
[root@cs7-sm ~]# who
root pts/0 2019-05-19 16:42 (10.0.0.1)
[root@cs7-sm ~]# who|wc -l
1
3.15 iconv:转换文件的编码格式
iconv命令用于转换文件的编码格式。
iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]
iconv [选项] [原编码] [新编码] [输入文件]
-f encodingA 从编码A转换
-l 显示系统支持的编码
-t encodingB 转换成编码B
-o 将输出输入到指定文件
[root@cs7-sm ~]# iconv -f gb2312 -t utf-8 gb2312.txt
Hello World
3.16 dos2unix:将DOS格式文件转换成UNIX格式
将DOS(Windows系统)格式文件转换成UNIX格式(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以“\r\n”作为换行标志的,而UNIX下的文本文件是以“\n”作为换行标志的。所以在Linux中使用Windows的文本文件时,常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把Windows文件的“\r\n”转化成Linux文件的“\n”,unix2dos把Linux文件的“\n”转化成Windows文件的“\r\n”。这个命令也挺好记的,dos to unix→dos 2(two→to)unix→dos2unix
处理由Windows 系统创建的脚本文件。
[root@cs7-sm ~]# cat test_win.sh
#!/bin/bash
exportfs_usage()
{
cat <<END
USAGE:$0 {start|stop|monitor|status|validate-all}
END
}
exportfs_usage[root@cs7-sm ~]# bash test_win.sh
test_win.sh: line 2: $'\r': command not found
test_win.sh: line 3: syntax error near unexpected token `$'\r''
'est_win.sh: line 3: `exportfs_usage()
[root@cs7-sm ~]# cat -A test_win.sh
#!/bin/bash^M$
^M$
exportfs_usage()^M$
{^M$
cat <<END^M$
USAGE:$0 {start|stop|monitor|status|validate-all}^M$
END^M$
}^M$
exportfs_usage[root@cs7-sm ~]# dos2unix test_win.sh
dos2unix: converting file test_win.sh to Unix format ...
[root@cs7-sm ~]# cat -A test_win.sh
#!/bin/bash$
$
exportfs_usage()$
{$
cat <<END$
USAGE:$0 {start|stop|monitor|status|validate-all}$
END$
}$
exportfs_usage[ro
[root@cs7-sm ~]# cat -A test_win.sh
#!/bin/bash$
$
exportfs_usage()$
{$
cat <<END$
USAGE:$0 {start|stop|monitor|status|validate-all}$
END$
}$
exportfs_usage[root@cs7-sm ~]# ^C
[root@cs7-sm ~]# sh test_win.sh
USAGE:test_win.sh {start|stop|monitor|status|validate-all}
3.17 diff:比较两个文件的不同
diff命令可以逐行比较纯文本文件的内容,并输出文件的差异。
只能同时比较2个文件。
-y 以并列的方式显示文件的异同之处
-c 使用上下文的输出格式
-W 在使用-y参数时,指定显示宽度
-u 使用统一格式输出
[root@cs7-sm ~]# cat >test1
1
2
3
4
5
6
[root@cs7-sm ~]# cat >test2
4
5
6
7
8
[root@cs7-sm ~]# diff test1 test2
1,3d0
< 1
< 2
< 3
6a4,5
> 7
> 8
以下是命令结果说明,diff默认的显示格式有如下三种提示。
a -add
c -change
d -delete
例如:在1,3d0和6a4,5中,字母d/a前面的数字是文本1的行号,字母后面的是文本2的行号。其中以“<”打头的行属于文件1,以“>”打头的行属于文件2。
并排格式输出
[root@cs7-sm ~]# diff -y test1 test2 #<==使用一参数就可以并排输出。
1 <
2 <
3 <
4 4
5 5
6 6
> 7
> 8
[root@cs7-sm ~]# diff -y -W 30 test1 test2
1 <
2 <
3 <
4 4
5 5
6 6
> 7
> 8
上下文输出格式
[root@cs7-sm ~]# diff -c test1 test2
*** test1 2019-05-19 21:06:47.567530785 +0800
--- test2 2019-05-19 21:07:01.624530484 +0800
***************
*** 1,6 ****
- 1
- 2
- 3
4
5
6
--- 1,5 ----
4
5
6
+ 7
+ 8
"-"表示test2比test1少的行数。
"+"表示test2比test1多的行数。
统一格式输出
[root@cs7-sm ~]# diff -u test1 test2
--- test1 2019-05-19 21:06:47.567530785 +0800
+++ test2 2019-05-19 21:07:01.624530484 +0800
@@ -1,6 +1,5 @@
-1
-2
-3
4
5
6
+7
+8
比较两个目录
[root@cs7-sm ~]# diff /etc/rc3.d/ /etc/rc6.d/
Only in /etc/rc6.d/: K90network
Only in /etc/rc3.d/: S10network
3.18 vimdiff:可视化比较工具
vimdiff调用vim打开文件,可以同时打开2个、3个或4个文件,最多4个文件,并且会以不同的颜色来区分文件的差异。
最多对比4个文件。
3.19 rev:反向输出文件内容
rev命令可以按行反向输出文件内容。
字符串反转
[root@cs7-sm ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@cs7-sm ~]# echo {1..10}|rev
01 9 8 7 6 5 4 3 2 1
文本反转
[root@cs7-sm ~]# rev gb2312.txt
界世好你
! dlroW olleH
来源:oschina
链接:https://my.oschina.net/u/4417460/blog/3532023