2007-06-26
管线命令
关键字: Linux 学习bash命令执行时会输出数据,如果这些数据需要经过几道手续之后才能得到我们想要的格式,应该如何设定?这就涉及到管线命令的问题。管线命令使用的是“|”界定符号。
假设我们要读取last指令中root登入的次数,应该怎么做?注意,我们只需要次数,步骤如下:
- 执行last,将这个月的所有人的所有登入数据取出来;
- 使用grep将上面的输出数据(stdout)中的root撷取出来,其他的不要;
- 使用wc这个可以计算行数的指令对上一步取到的数据计算行数;
last | grep root | wc -l
管线命令“|”只能处理经由前一个指令传来的正确信息,也就是标准输出信息,对于标准错误信息并没有直接处理的能力。
cut指令
cut主要的用途在于将同一行的数据进行分解,最常用来分析一些数据或文字数据的时候,这是因为有时候我们会以某些字符作为分隔参数,然后将数据加以切割,以取得我们需要的数据。
语法:
cut -d "分隔字符" [-cf] fields
参数说明:
-d:后面接的是分隔字符,默认是空格符
-c:后面接的是第几个字符
-f:后面接的是第几个区块
范例:
cat /etc/passwd | cut -d ":" -f 1
// 将passwd文件中的每一行里的":"用作分隔符,列出第一个区块,也就是姓名所在
last | cut -d " " -f 1
// 以空格作为分隔符,并列出第一个区块
last | cut -c 1-20
// 将last之后的数据,每一行的1-20个字符取出来.
sort命令
sort命令同样是很常用的指令,因为我们常常需要比较一些信息。
语法:
sort [-t 分隔符] [(+开始)(-结束)] [-nru]
参数说明:
-t 分隔符:使用分隔符隔开不同区块,默认是tab
+start -end:有第start区块排序到第end区块
-n:使用纯数字排序(否则会以字母方式排序)
-r:反向排序
-u:相同出现的一行,只列出一次
cat /etc/passwd | sort //将列出来的个人帐号排序
cat /etc/passwd | sort -t : +2 -n
// 将个人帐号以用户ID排序(以:作分隔符,第三个为ID,但第一个代号为0)
cat /etc/passwd | sort -t : +2 -nr // 反向排序
wc命令
wc命令是用来计算文件内容的一个工具组。
语法:
wc [-lmw]
参数说明:
-l:多少行
-m:多少字符
-w:多少字
范例:
cat /etc/passwd | wc -l //这个文件有多少行
cat /etc/passwd | wc -w //这个文件里有多少字
uniq命令
uniq用来删除重复的行从而只显示一个
语法:uniq
范例:
last | cut -d " " -f 1 | sort | uniq
tee命令:
当我们使用重定向命令的时候,屏幕上可能就不会显示任何信息。如果我们需要将数据同时显示在屏幕上和文件中呢?这个时候就需要tee指令了。
范例:
last | tee last.list | cut -d " " -f 1
tr命令
语法
tr [-ds] SET1
参数说明:
-d:删除SET1这个字符串
-s:取代重复的字符
last | tr '[a-z]' '[A-Z]' // 将小写改成大写
cat /etc/passwd | tr -d : // " : "这个符号在/etc/passwd中不见了
cat /home/test/dostxt | tr -d '\r' > dostxt-noM //将dostxt文件中的行尾符号^M去掉
这个指令也可以写在正则表示法里,因为它也是以正则表示法方式取代数据。
split命令
split命令用来分割文件。
语法
split [-bl] 输入文件 输出文件前导字符
参数说明:
-b:以文件size来分
-l:以行数来分
范例
split -l 5 /etc/passwd test
发表评论
最新评论
-
工作两年了,发发牢骚
zpple 写道不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司, ...
-- by rxgp02a -
工作两年了,发发牢骚
yanshiyi 写道rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的 ...
-- by rxgp02a -
工作两年了,发发牢骚
不赞成做技术,想发展就不要做技术,做上了技术就要跳到一个大公司,盯着一个项目组, ...
-- by zpple -
工作两年了,发发牢骚
rxgp02a 写道个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那 ...
-- by yanshiyi -
工作两年了,发发牢骚
个人感觉,谁的技术也不是白来的,同样的时间别人进步比你快,那是因为别人比你努力, ...
-- by rxgp02a







评论排行榜