Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101710
  • 博文数量: 4
  • 博客积分: 131
  • 博客等级: 入伍新兵
  • 技术积分: 117
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-01 01:03
文章分类

全部博文(4)

文章存档

2013年(1)

2012年(3)

我的朋友

分类: LINUX

2012-12-11 15:30:29

下面这些绝对是本人亲身经历的面试题目:有的直接就傻眼,竟然当时忘记答案了,没法啊,作为初学者,我承认我很水。

1)Linux下获取文件关键字所在的行的行号:

举例:文件名a.txt ,关键字为:“abc”

文件内容是:
Hello
World
Linux
Unix
abc



方法一:
sed -n '/关键字/'= 文件名

命令如下:
# sed -n '/abc/'= a.txt
5

等号就是打印行号的意思。
注意:等号后面要有个空格,然后再加文件名,

方法二:
cat 文件名|awk '{print NR" "$0}'|grep 关键字|awk '{print $1}'

命令如下:
cat a.txt|awk '{print NR " " $0}'|grep "abc"|awk '{print $1}'

命令用了3次管道,被分成了4部分。我一段段解释:

第一段:cat a.txt
            查看文件内容。

            单独运行的这个命令的输出为:
            # cat a.txt
            Hello
            World
            Linux
            Unix
            abc


第二段:awk '{print NR " " $0}'
            1) awk这个命令很强大,如果想详细了解,可以自己查,我这推荐个网站:
                  http://blog.csdn.net/tianlesoftware/article/details/6278273
            2) 这里只解释下用到的关键字
                  '{print NR" "$0}'  这个意思是 打印行号以及该行所有内容,并以空格" "隔开

            运行前两段命令:可以得出如下结果(在原来基础上加入了行号)
            # cat a.txt |awk '{print NR " " $0}'
            1 Hello
            2 World
            3 Linux
            4 Unix
            5 abc


第三段:grep "abc"
            不用说了,查找关键字 “abc”
           
            运行前三段命令,结果为:
            # cat a.txt |awk '{print NR " " $0}' |grep "abc"
            5 abc


第四段:
awk '{print $1}'
             前面看到$0,意思是把当前行所有内容全都打印出来。
             $n的代表一行内容被分成n段,分隔符默认为空格或tab,这是为什么第二段命令要加一个空格的原因。从前三段可以看出输出为:5 abc,所以被分成2部分,第一部分为行号5,第二部分为关键字“abc”,即$1的值是5。
 
             运行整个命令,结果为:
            # cat a.txt |awk '{print NR " " $0}' |grep "abc" |awk '{print $1}'
            5


           也可以在print 后面可以加任意字符串,第二段命令中的空格“ ”也属于这个应用:
            # cat a.txt |awk '{print NR " " $0}' |grep "abc" |awk '{print "line: " $1}'
            line: 5


到此为止以上的题目就解释完毕了,再次佩服一下管道的神奇作用。

2)打印文件的内容有多少行:

  wc -l 文件名
 
  WC(word count), -l  代表 打印行数。
  用上面的文件举例:
  # wc -l a.txt
  5 a.txt


  面试的时候这个都没答出来,连厕(WC)所这么牛B的命令都可以忘记,悲催啊,相信以后再也不会忘记了。

未完,待续。。。

阅读(1219) | 评论(0) | 转发(1) |
0

上一篇:Boost 学习笔记

下一篇:面试陷阱题目

给主人留下些什么吧!~~