Cat 文件第 14 行的最后 X 个字符

Cat last X characters on the 14th line in a file

我有一个文件有一行 VERSION : X.X.X

我只想在控制台上 return 行的 X.X.X 部分。 首先我需要得到我正在做的行

sed -n 14p filename.txt

我只是有点迷茫,不知道如何 return只处理该行的最后 5 个字符,而不是整行。

我的第一个想法:

  1. 反转线
  2. 剪切last/first X个字符
  3. 反转线。

rev | cut -c-5 | rev

但是用 sed 你可以替换:

sed 's/.*\(.\{5\}\)$//'

您可以使用

sed -n '14 s/VERSION *: *//p' file

online sed demo

使用 s/VERSION *: *//,您只需删除 VERSION、0 个或更多空格、:、0 个或更多空格。

能否请您尝试关注。

awk '/VERSION/{print substr([=10=],length([=10=])-4)}' Input_file

简要说明: 寻找包含字符串 VERSION 的行,然后使用 subtr 打印子字符串, 从长度 4 到行的最后一个字符。

关于 OP 的问题为什么我们必须写代码 length([=14=])-4 而不是 length([=15=])-5: 让我们理解它通过以下方式:

VERSION : X    .   X   .   X
          ^    ^   ^   ^   ^
          |    |   |   |   |
          -4  -3  -2   -1  Last character/letter of this line(so this becomes 1 character out of 5.
That's why we need to mention -4 in length([=11=])-4 so that it takes value till last character).