sed删除前5行以外的剩余字符

时间:2012-05-23 10:42:17

标签: sed character line

除了前5个前导字符,使用sed删除所有字符的sed命令是什么? 我已经尝试过'倒退'(恢复删除),但这不是最优雅的解决方案。

2 个答案:

答案 0 :(得分:9)

这可能适合你(GNU sed):

echo '1234567890' | sed 's/.//6g'
12345

或者:

echo '1234567890' | cut -c-5
12345

答案 1 :(得分:3)

尝试这个(在行的开头重复5次'任意'字符并将其保存在第一组中,然后对任何字符进行任意数量的重复,并将匹配的字符串替换为第一组):< / p>

sed 's/^\(.\{5\}\).*/\1/'

或者mouviciel建议的替代方案:

sed 's/^\(.....\).*/\1/'

(只要你想要的第一个字符的数量不会变得太大,它就更具可读性)