Linux 常用之处理海量数据命令

1、cut基本使用

cut 使用场景:通常对数据进行行列的提取
语法:cut [选项] ...[file]
选项:
-d : 指定分隔符
-f : 指定截取区域
-c : 以字符为单位进行分割
注意:不加-d 默认为制表符,不是空格

eg:以':'为分隔符。截取出/etc/passwd的第一列跟第三列
cut -d ':' -f 1,3 /etc/passwd

eg:以':'为分隔符,截取出/etc/passwd的第一列到第三列
cut -d ':' -f 1-3 /etc/passwd

eg:以':'为分隔符,截取出/etc/passwd的第二列到最后一列
cut -d ':' -f 2- /etc/passwd

eg:截取/etc/passwd文件从第二个字符到第九个字符
cut -c 2-9 /etc/passwd

eg:比如领导想叫你截取linux上面所有可登陆普通用户
cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root

2、awk基本使用

awk : 一个非常强大的数据处理命令。支持条件判断,数组,循环等功能,与grep sed 称为Linux的三剑客

  • awk的应用场景:
语法:awk '条件1{执行动作} 条件2{执行动作}...' 文件名
	 awk [选项]'条件1{执行动作} 条件2{执行动作}...' 文件名
	 
printf : 格式化输出。不会自动换行
print : 打印出内容,默认会自动换行
%s : 代表字符串
\t : 制表符
\n : 换行符
eg:printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6
  • awk特殊要点
NR : 行号
$1 : 代表第一列
$2 : 代表第二列
$NF : 代表最后一列
df -h | awk 'NR==4 {print $1}'
df -h | awk '(NR>=2 && NR <=5){print $1}'
df -h | awk '{print $NF}'


-F : 指定分隔符
awk -F ":" '{print $1}' /etc/passwd
  • BEGIN #在读取所有行内容前就开始执行,一般用来初始化操作
eg:
cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'
df -h |grep -v 'Filesystem' | awk '{printf $1} {printf "文件系统使用率:"} {print $5}'
df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1}
{printf "文 件系统使用率:"} {print $5}'
  • END #结束的时候 执行
df -h |grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况:\n \n"} {printf $1}
{printf "文件系统使用率:"} {print $5} END {printf "一切正常 \n"}'
3、sed命令

sed应用场景:主要对数据进行处理(选取、新增、替换、删除、搜索)

sed语法 :
sed [选项][动作]文件名
常用参数
-n : 把匹配到的行输出打印到屏幕
-p : 一行为单位进行打印,通常与-n一起使用
df -h |sed -n '2p'

d : 删除
df -h | sed '2d'

a:在行的下方插入新的内容
df -h |sed '2a 12345678989'

i : 在行的上方插入新的内容
df -h | sed '2i 12312312312'

c : 替换
df -h |sed '2c 12312311321'

指定字符替换:s/要被取代的内容/新的字符串/g :指定内容进行替换
df -h | sed 's/centos-root/Centos7/g'

-i : 对源文件进行修改(高危操作,慎用,用之前需要备份)
sed -i 's/Centos7/Centos8/g' df.txt

搜索:在文件中搜索内容
sed -n '/temp/p' df.txt

-e : 表示可以执行多条动作
sed -e 's/Centos8/Centos7/g' -e 's/tmp/TMP/g' df.txt > 123.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值