使用 sed 删除除前 5 个前导字符外的所有字符的 sed 命令是什么?我已经尝试过“倒退”(恢复删除),但这不是最优雅的解决方案。
问问题
4380 次
2 回答
10
这可能对您有用(GNU sed):
echo '1234567890' | sed 's/.//6g'
12345
或者:
echo '1234567890' | cut -c-5
12345
于 2012-05-23T13:09:09.123 回答
3
试试这个(在行首重复 5 次 'any' 字符并将其保存在第一组中,然后重复任意次数的任何字符,并将匹配的字符串替换为第一组):
sed 's/^\(.\{5\}\).*/\1/'
或 mouviciel 建议的替代方案:
sed 's/^\(.....\).*/\1/'
(只要您想要的第一个字符的数量不会变得太大,它就更具可读性)
于 2012-05-23T11:00:36.817 回答