linux管道实验总结,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'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值