面试常见的Linux文本处理命令整理(1)

本文介绍了Linux下常用的文本处理命令,特别是AWK的使用。通过实例展示了如何用AWK获取本机IP地址和从Oracle配置文件中提取用户名与密码。还探讨了AWK的NF和NR属性,以及与sed、cut命令的组合运用。此外,提供了相关资源链接以供进一步学习。
摘要由CSDN通过智能技术生成

面试常见的Linux文本处理命令整理


前言

    Linux平台下处理数据有几个常见的命令(awk,sed,cut,sort),也是数据开发,数据分析,数据处理等各种面试笔试经常会问道的一个点,本文对其做一个经验性的总结。

AWK

在面试中遇到的两个题目:

1.用一句shell命令取出本机的ip地址(很久没用linux的后台,当时完全没想到awk和sed)
    思路:用ifconfig或者ip addr 打印出ip地址相关信息,然后对整体打印的信息做一些数据  处理操作(sed,cut,awk),只取IP地址,这里仅提供ifconfig方式提取
(1) ifconfig eth0
ifconfig的截图

(2)ifconfig eth0 | sed -n ‘2p’ (取打印出来的信息的第二行)
IP行
    sed -n 2p,这里也可以用head -n 2 | tail -n 1(显得有些low)
head_tail

    或者ifconfig eth0 | grep ‘inet addr’(根据关键字符串查找)

IP行2

(3)ifconfig eth0 | sed -n ‘2p’ | awk ‘{print $2}’ (根据空格分列,取第二列)
awk_$2
然后根据":"分隔取第二列
冒号分隔
步骤(2)里面或者方法同样试用如此操作。

当然这里也可以先根据":"分隔,再根据空格分隔来取
空格份
分号

熟悉awk的NFNR用法,也可以直接用awk的NR取第二行(默认已经根据空格分隔取第二列,可以和NR在一条命令里面完成),再根据":"分隔取第二列

awk_NR

 
 
这里稍微拓展一下AWK的NF和NR命令:
  NF:支持记录域个数,在记录被读之后再设置(配合-F参数,根据指定字符分隔列)
  NR:已经读取的记录数

awk

到这里就想到了我最开始接触的那个awk命令,大概用法
 awk -F ‘,’ ‘{print NR,NF}’ dept.csv
异常

快速定位数据文件在哪一行出现了特殊字符导致异常换行
即:找出域不相同的行

    熟悉awk和sed还可以有很多组合来处理文本,这里还可以使用cut截取,多种方法处理参考链接:https://blog.51cto.com/12564489/1910071

 
 
2.根据已知的Oracle的配置文件,取出用户名和密码
配置文件内容如下:
 ora

方法一先cat读取文件,然后awk根据"="分隔,取第二列,最后根据需要,用户名取第二行,密码取第三行
用户
密码

方法二我们这里也可以用上面提到的low办法,用head和tail组合的方式确定行

用户1
密码1
方法三用高级方法awk的NR方法来指定行
用户名:cat /home/hjj/orapasswd.txt | awk -F ‘=’ ‘NR==2{print $2}’
高级
密码:cat /home/hjj/orapasswd.txt | awk -F ‘=’ ‘NR==3{print $2}’
高级1


总结

时间有限,只能做成一个小的系列来整理了
参考博文:https://blog.51cto.com/12564489/1910071
     https://www.cnblogs.com/kerrycode/p/4581030.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值