如何对单行的水平尾部进行切片

如何对单行的水平尾部进行切片

给定

文件1

1:b:c:4

文件2

1:3:47:8:aa:2

文件3

1:4:5:8:9:11:aaaaa:2:3:4:88:9:10

我想在“:”之后找到该行的尾部。要注意每个文件始终只包含一行

例如

$ command file1
4
$ command file2
2
$ command file3
10

答案1

sed 's/.*://' file*

上面的命令删除每行sed最后一个之前的所有内容(包括)。::

答案2

awk -F: '{print $NF}' file*

此 awk 命令将打印最后一列(用 :(冒号)分隔)

答案3

使用bash

line=$(<file)
echo "${line##*:}"
  1. file入变量line.
  2. echo变量并删除##前缀模式的最长匹配 ( )*:


grep

grep -ho '[^:]*$' file*

-o如果您有一个输入文件,则仅需要选项(仅打印匹配的部分)。禁止-h在每次匹配之前打印文件名。

相关内容