为简化讨论,设N = 3.
我目前提取文件或流中每行的最后三个字符的方法是使用sed捕获组中的最后三个字符,并用该组替换整行.
sed 's/^.*\(.\{3\}\)/\1/'
它有效但看起来过于冗长,特别是当我们比较一行中获得前三个字符的方法时.
cut -c -3
使用grep -o’… $’非常简单:
cat /etc/passwd | grep -o '...$' ash /sh /sh /sh ync /sh /sh /sh
或者更好的是:
N=3; grep -o ".\{$N\}$" </etc/passwd ash /sh /sh /sh ync /sh /sh
这样你就可以根据自己喜欢的价值调整你的N.