常用文本处理方法

取指定行

取第一行

sed -n '1p' file

-n表示禁止默认的输出,p表示print

取前N行

sed -n '1,np' file

或者

head -n 10 file

取最后一行

sed -n '$p' file

$表示最后一行

或者

tail -1 file

取最后N行

tail -n file

取指定行到最后一行

比如一个perl脚本,取定义main函数开始的行一直到最后一行。/sub main/表示main函数所在的行,$表示最后一行。

sed -n '/sub main/,$p' test.pl

取第M至N行

head -N file | tail -(N - M + 1)

比如取8-11行就是

head -11 file | tail -4

取两个模式之间所有行

sed -n '/sub test/,/&test/p' test.pl

随机取若干行

只能用awk了吧?

取指定列

取第一列

取前N列

取最后一列

取最后N列

取第M至N列

取第M行,第N列。

取指定单词

有一个文件内容如下

4567893435656qq2237645
56789987765444qq223445
345678888990900405500qq3344566

取每行中qq前面的五个数字

sed -n 's/.*\(.\{5\}\)qq.*/\1/p' data

注意,()与{}都需要转义,有什么参数可以不转义么?提取功能实际上用到了替换功能,前面的正则一定是匹配整个行的,然后用\1来替代整个行,最后用p打印之。

拆分行

合并行

去重

修改行

替换某行

将第5行替换为hello,注意要将替换的文本另起一行书写,也就是5c\后面有一个回车。

sed -e '5c\
hello
' test.pl > newtest.pl

如果没有-f参数,且只有一个-e参数,那么-e可以省略,所以下面写法效果一样。

sed '5c\
hello
' test.pl > newtest.pl

==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值