awk和sed常用记录

############## awk ###############

# 第一列求和
cat aaa.txt | awk '{sum+=$1} END {print "Sum = ", sum}'
# 把列式转为逗号隔开的数据
awk -F' ' '{print $1}' uids | xargs | tr ' ' ',' >> uids_row
# 取第二列为新文件:
cat uid.txt | awk '{print $2}' >> new_uid.txt
# 取第一列数据:
awk -F':' {print $1} passwd
# 取passwd文件第一列和第七列并加表头
awk -F':' 'BEGIN{print "name\tshell"} {print $1"\t"$7} END{print "from passwd"}' passwd

############## sed ###############

-d 删除符合条件的行
-p 显示符合条件的行
-a \string 指定的行后面追加新行,内容为string
-i \string 指定的行前面添加新行,内容为string
-s/pattern/string/修饰符 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
    g 行内全局替换
    i 忽略字符大小写
    s/// s### s@@@
    \(\),引用\1,\2

# 文件最后一行插入文字
sed -i '$a\要插入的文字' file.txt($匹配文件的最后一行)
# 在第三行下面添加一行文字
sed -i '3a\插入的文字' sed.txt

# 在第二行下面加一行hello world 
sed "2a\hello world" sed.txt 输出到控制台,不改变原文件
sed -i "2a\hello world" sed.txt 无输出,改变原文件
# 删除apple的行
sed "/apple/d" sed.txt
# 去掉空行 
sed '/^\s*$/d' userid.txt

# 替换initial文本中的id:3:initdefaule:中的数字3
sed -i "s/\(id:\)[0-6]\(:initdefault:\))/\15\2/" inittab

# 修改某一行的某个内容前面加内容
sed -i "s/world/hello world/" sed.txt

# 多行合为一行:
# 逗号两边的引号去掉
sed -i "s/','/,/g" aaa
# 去掉单引号
sed -i "s/'//g" aaa
# 去掉换行预览
sed ':a ; N;s/\n/ / ; t a ; ' aaa
# 去掉\n,去掉换行
sed -i ':a ; N;s/\n/ / ; t a ; ' aaa
# 把空格去掉
sed "s/ //g" aaa

# 加上双引号
行首追加内容
sed -i 's/^/"/' ttt.txt
行尾追加内容
sed -i 's/$/",/' ttt.txt
去除空格
sed s/[[:space:]]//g ttt.txt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值