- 论坛徽章:
- 0
|
by yifengzhang21c
呵呵,说这033简单也是,不过不认真看真不行啊,今天就发现问题了.
在看unit8的时候就遇到了个有趣的问题:
我想试试cut命令的用法,随便抓了个"舌头"看看.
#cat /root/install.log
.
.
Installing xorg-x11-drv-elo2300 - 1.1.0-1.1.i386
Installing xorg-x11-drivers - 7.1-4.1.el5.i386
Installing synaptics - 0.14.4-8.fc6.i386
Installing linuxwacom - 0.7.4.3-2.el5.i386
Installing system-config-keyboard - 1.2.11-1.el5.noarch
Installing firstboot - 1.4.27.3-1.el5.noarch
Installing lrzsz - 0.12.20-22.1.i386
Installing libwvstreams - 4.2.2-2.1.i386
Installing isdn4k-utils - 3.2-50.1.i386
Installing wvdial - 1.54.0-5.2.2.1.i386
Installing minicom - 2.1-3.i386
恩就它了install.log,各个字段间为space分割,我想让它只给我显示我安装的软件包名称,即第二个字段.
#cut -f2 /root/install.log
呀!妈妈丫,怎么整条记录都显示出来了???我只要它显示第二个字段.晕,怪了.
于是我尝试awk
#awk '{print $2}' /root/install.log
OK,可以正常显示,于是我问了问群里的朋友,cut是不是这么用?KOOP告诉我应该是
#cut -d" " -f2 /root/install.log
经过测试果然如此,其实并不是我不知道-d参数的用法,只是我不知道cut默认行为是区分tab和space的.(因为以前有学过awk,所以误解了cut的分割符也和awk一样.)
于是总结下问题:
cut默认的字段分割符号tab,而不包含space;
awk默认的字段分割符是tab和space.
所以出现了上面的错误。在KOOK兄(我习惯叫他"跳棺材",我是"跳跳")的配合下得到的结论,自然由我们两个共享了,呵呵这样的学习很有趣.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/27173/showart_460367.html |
|