Linux 中如何截取文本的最后几个字符
001、awk输出最后的两个字符
a、
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试数据 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# awk -F "" '{print $(NF - 1), $NF}' a.txt ## awk输出文本的最后两个字符 4 8 e r r c

b、使用数字直接指定
[root@PC1 test2]# ls a.txt [root@PC1 test2]# cat a.txt ## 测试文本 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test2]# awk -F "" '{tmp = substr($0, length($0) - 2, length($0)); print tmp}' a.txt ## 截取最后3个字符 248 eer erc [root@PC1 test2]# awk -F "" '{tmp = substr($0, length($0) - 5, length($0)); print tmp}' a.txt ## 截取最后6个字符 fd3248 iuyeer dgherc

002、grep输出最后的两个字符
a、
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试文件 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# grep "..$" a.txt 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# grep -o "..$" a.txt ## 输出最后两个字符 48 er rc

b、直接用数字指定匹配次数
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试文件 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# grep -E ".{3}$" a.txt 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# grep -oE ".{3}$" a.txt ## 输出文本的最后3个字符 248 eer erc [root@PC1 test1]# grep -oE ".{5}$" a.txt ## 输出文本的最后5个字符 d3248 uyeer gherc

003、rev + cut实现
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试数据 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# rev a.txt | cut -c 1-3 | rev ## 取最后三个字符 248 eer erc [root@PC1 test1]# rev a.txt | cut -c 1-5 | rev ## 取最后5个字符 d3248 uyeer gherc

004、 sed实现
[root@PC1 test1]# ls a.txt [root@PC1 test1]# cat a.txt ## 测试数据 325dsfd3248 fdsfgeiuyeer sfdgdgherc [root@PC1 test1]# sed 's/\(.*\)\(...$\)/\2/' a.txt ## 取最后三个字符 248 eer erc

。

浙公网安备 33010602011771号