本文介绍了有没有一种更干净的方法来获取每行的最后N个字符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为简化讨论,让N = 3
.
我当前提取文件或流中每行最后三个字符的方法是使用sed
捕获组中的最后三个字符,并用该组替换整行.
My current approach to extracting the last three characters of every line in a file or stream is to use sed
to capture the last three characters in a group and replace the entire line with that group.
sed 's/^.*\(.\{3\}\)/\1/'
它可以工作,但看起来太冗长,特别是当我们比较将 first 排成一行的三个字符的方法时.
It works but it seems excessively verbose, especially when we compare to a method for getting the first three characters in a line.
cut -c -3
是否有一种更干净的方法来提取每行中的最后N个字符?
推荐答案
使用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
调整为所需的任何值.
That way you can adjust your N
for whatever value you like.
这篇关于有没有一种更干净的方法来获取每行的最后N个字符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!