linux常用命令awk,sort

本文介绍了Linux中awk和sort命令的常见用法,包括使用awk进行数据求和,利用sort进行数字和文本排序,字符串替换,以及解决数字比较错误的问题。还涵盖了awk打印指定列、split字符串、sed替换字符串以及处理重复项的方法,是Linux运维人员的实用参考。

linux常用命令awk,sort
1.将文本中第2列数据求和
awk ‘{sum+=$2} END {print sum}’ a.txt

样例:a.txt
a.txt
在这里插入图片描述
执行 awk命令
在这里插入图片描述
2.sort 命令
-n 以数字排序(若不加则把文本中的数字当做字符)
-k 后面接数字k,以第k列关键字排序
-t 后面接字符,设置分隔符,默认是空格或者\t

3.替换
${变量/旧字符/新字符};只替换第一个匹配的字符
${变量//旧字符/新字符};替换所有匹配的字符
可以用于按照分隔符切分字符串,例如将字符串¥line;按照:分割开
命令:array=(¥{line//:/ })
取第一个元素¥{array[0]};求array数组的长度¥{#array[@]}

4.在做数字比较的时候经常报错 [ -gt unary operator expected
报错原因是:被比较的两个变量未赋初值,当变量为空是就出现[ -gt ]的现象

5.awk打印从第2列到最后一列的信息
awk ‘{for(j=2;j<NF;j++) printf(“%s “,$j); print””}’ file >file-2_NF

6.split 字符串,输出第二个字符串
string=“abc def ghi jkl mno”
array=(${string// / }) ;
echo ${array[1]}

7.sed
用法1:修改filename中的字符串a替换成b,并重定向到新的文件new_filename
cat filename | sed ‘s/a/b/g’ >new_filename

用法2:添加选项-i可以直接修改某文件中的字符串替换,不需要重定向到新的文件夹下
sed -i s/a/b/g filename

用法3:某字符串替换成变量(变量外单引号、双引号)
b=model
cat filename | sed ‘s/a/’ “$b” ‘/g’ >new_filename

8.sort命令,筛选重复的项
cat filename | sort|uniq -c | sort -nr
出现次数最多的出现在最顶端
2 f0db11d94c0047a289e976a74010f8b7-ByDefault 导航到 附近加油站
2 d95346c4b51c470787bc3b61ab0b01d7-ByDefault 导航到 恒隆广场
2 cf4fb0881d6fcb5b7cb67ec95d11f59a-ByDefault 导航到 你心里
2 c006cb3b03db4294a59baef75b4e6f1d-ByDefault 导航到 广州火车站
2 b295894b14504eda815705c7fcf8a09e-ByDefault 导航到 万象汇
2 934f2b05cb7b4ca8b27cd499826233b3-ByDefault 导航到 单位
2 8f610377f1c644c7b1809fc1ee13b567-ByDefault 导航到 湿地公园
2 7de58588773c422dbef6fc0565713256-ByDefault 导航到 附近的加油站
2 6c180f25cbaa426fb96f5f6484948b9c-ByDefault 导航到 万达广场
2 632af19759d840d9aa88a715329bbd81-ByDefault 导航到 附近的加气站
2 54e797d810ae21cfecc0b717fa2860bd-ByDefault 导航到 加油站
2 533a730433a243bda056c6d03de8b577-ByDefault 导航到 北京站
2 4077b7142246426ca62dbb6748aeaf4d-ByDefault 导航到 惠园小区
2 1ca91e8ab4785cf426b0027dc5bc679c-ByDefault 导航到 公司
2 1bd8a05000e54f89870a2c368b6a6de0-ByDefault 导航到 家
2 1940c1e17dd44b8a91f941da251feb0c-ByDefault 导航到 附近的加气站
2 1457d209df6c481880a3b6dddf4c8ac4-ByDefault 导航到 加油站
2 0721a4275fbc649e5eb1099eef1d5265-ByDefault 导航到 万达广场

8.1:sort按照第一列排序并将第一列重复的行删掉
cat tmp.txt
一 ii i1
一 ii i2
一 ii i4
丁 d ing1
七 q i1
万 uu uan4
丈 zh ang4
三 s an1
上 sh ang4
下 x ia4
例:“一”多发音,只保留其中一个
cat tmp.txt | sort -k 1,1 -u -
运行结果:
一 ii i1
丁 d ing1
七 q i1
万 uu uan4
丈 zh ang4
三 s an1
上 sh ang4
下 x ia4

9.服务器上正在运行的脚本转后台
第一步:ctrl+z暂停任务
第二步:bg将任务切至后台

10.grep第一列只有单个字的行
cat tmp.txt
今天 j in1 t ian1
天气 t ian1 q i4
好 h ao3
坏 h uai4
例:将好和坏这两行抽选出来
cat tmp.txt | grep "^. "
运行结果:
好 h ao3
坏 h uai4

utt2spk
a.file b.file
c.file d.file
文件utt2spk是旧文件夹名与对应的新文件夹名,批量修改文件夹的名字
awk ‘{system("mv “$1” “$2"”)}’ utt2spk

机器卡顿查2个地方:
1.端口用htop看cpu利用率
2.进入存储storage机器用iostat查看机器上的io利用率 iostat -m -x 1

文本文字拆分成单字
echo 在干啥子睡了没得 |sed ‘s/./& /g’
生成的结果如下:
在 干 啥 子 睡 了 没 得

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值