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 个字符,而不是整行。
我的第一个想法:
- 反转线
- 剪切last/first X个字符
- 反转线。
rev | cut -c-5 | rev
但是用 sed
你可以替换:
sed 's/.*\(.\{5\}\)$//'
您可以使用
sed -n '14 s/VERSION *: *//p' file
使用 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).
我有一个文件有一行 VERSION : X.X.X
我只想在控制台上 return 行的 X.X.X
部分。
首先我需要得到我正在做的行
sed -n 14p filename.txt
我只是有点迷茫,不知道如何 return只处理该行的最后 5 个字符,而不是整行。
我的第一个想法:
- 反转线
- 剪切last/first X个字符
- 反转线。
rev | cut -c-5 | rev
但是用 sed
你可以替换:
sed 's/.*\(.\{5\}\)$//'
您可以使用
sed -n '14 s/VERSION *: *//p' file
使用 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).