sed编辑(不只是打印)65个字符的行

时间:2014-12-02 05:56:04

标签: sed

很容易找到有关如何打印65个字符或更多字符的说明(Google“sed one-liners”),但我无法弄清楚实际编辑一行的语法(即,在这样一条线上做替代。

4 个答案:

答案 0 :(得分:1)

对包含65个或以上字符的行进行更改。

sed '/^.\{65,\}/s/.*/llll/' file

这会将包含65个或以上字符的行中的所有字符替换为llll。替换仅适用于那些线路。

^.\{65,\}搜索模式,仅匹配满足给定条件的那些行。 \{65,\}称为重复量词,它重复前一个令牌(即.)65次或更多次。要保存所做的更改,您需要在sed命令中添加内联编辑-i参数。

答案 1 :(得分:0)

实际上,我能够将它拼凑在一起。我想做的就是用“bar”替换“foo”,但前提是该行有65个或更多字符。事实证明它看起来像这样:

sed '/\(^.\{65\}\)/s/foo/bar/' num.tmp 

答案 2 :(得分:0)

这可能适合你(GNU sed):

 sed 's/./&/65;T;s/pattern/replacement/' file

单独更换角色65,如果替换失败,则以其他方式取消...

答案 3 :(得分:-1)

我认为您需要-i选项。

$ man sed

输出: ...

-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)