linux管道常用命令总结

截取前两行的第五个字符
head -2 1.txt | cut -c 5
截取前两行的1,2段落内容
head -2 1.txt | cut -d ':' -f 1,2
head -2 1.txt | cut -d ':' -f 1-2

排序
sort 2.txt
去重排序
sort -u 2.txt
正序排序
sort -n 3.txt
倒叙排序
sort -n -r 3.txt

指定分隔符排序(对内容的第二个字段进行排序)
sort -t ' ' -k2nr score.txt
-t    指定分隔符
-k   对哪一列排序
原文件内容如下:
zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maqi 88 22 66
zhouba 98 44 46


统计:   -w 单词数      -l 行数        -c 字节数  
wc 4.txt 
wc -l 4.txt   多少行数
wc -l 4.txt

uniq  去重命令、统计次数[去重的前提是排序,去重的是相邻的]
cat 5.txt | sort 5.txt | uniq

替换
# 将 小写i 替换成  大写 I
echo "itheima" | tr 'i' 'I'

# 把itheima的转换为大写
echo "itheima" | tr '[a-z]' '[A-Z]'

# 把 HELLO 转成 小写
echo "HELLO" | tr '[A-Z]' '[a-z]'

删除所有数字
echo 'abc1d4e5f' | tr -d '[0-9]'


单词计数综合案例
原文件内容:
hello,world,hadoop
hive,sqoop,flume,hello
kitty,tom,jerry,world
hadoop
1. 将逗号换成换行符
2. 排序
3. 去重
4. 计数
cat words.txt | tr ',' '\n' | sort | uniq -c
      1 flume
      2 hadoop
      2 hello
      1 hive
      1 jerry
      1 kitty
      1 sqoop
      1 tom
      2 world

split 切割
split  -b 10k  文件    按照字符切割
split  -l 1000  文件    按照行切割


awk 
模糊搜索、按需提取字段、判断、运算
awk   '/zh|li/'  score.txt                 搜索  zh  或者  li  的字段
awk   -F  ','    '{print 1, 2, $3}'  1.txt        操作1.txt文件,  根据 逗号 分割, 打印 第一段 第二段 第三段 内容
awk -F  ':'  '{OFS="==="}{print 1, 2, $3}'  1.txt        操作1.txt文件,  根据逗号分割, 打印第一段 第二段 第三段内容
OFS="字符"          向外输出时的段分割字符串
awk -F  ':' '{print toupper($2)}' 1.txt                        操作1.txt文件,  根据逗号分割, 打印第一段 第二段 第三段内容,成大写的!

awk -F ' ' '{if(4>60) print 1, 4, "及格"; else print 1, $4, "不及格"}' score.txt     判断是否及格
awk -F ' ' 'BEGIN{total=0}{total=total+$4}END{print total, NR, (total/NR)}' score.txt      求平均分

sed
显式行号
#简化版
cat -n 1.txt
cat -b 1.txt
nl 1.txt

包含root的,忽略大小写。
nl 1.txt | sed -n -e '/root/Ip'
nl 1.txt | grep -i root
cat -n 1.txt | grep -i root
r后面多个t
sed -nr -e '/r+t/p' -e '/r+t/=' 1.txt

要显示前四个
nl 1.txt | sed -e '5,$d'
nl 1.txt | sed -n -e '1,4p'

append  添加
nl 1.txt | sed -e '2a aaaaa'

insert插入
nl 1.txt | sed -e '1i bbbbb'


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据架构师Pony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值