Linux Cat文件中第14行的最后X个字符
我有一个文件,其中一行的版本是:X.X.X 我想在控制台上只返回该行的X.X.X部分。 首先,我需要得到我正在使用的线路 sed-n 14p filename.txt 我只是有点不知所措,不知道如何只返回行的最后5个字符,而不是完整的行。我的第一个想法: 倒线 剪切最后/第一个X字符 倒过来。 但使用sed,您可以替换:Linux Cat文件中第14行的最后X个字符,linux,sed,cat,Linux,Sed,Cat,我有一个文件,其中一行的版本是:X.X.X 我想在控制台上只返回该行的X.X.X部分。 首先,我需要得到我正在使用的线路 sed-n 14p filename.txt 我只是有点不知所措,不知道如何只返回行的最后5个字符,而不是完整的行。我的第一个想法: 倒线 剪切最后/第一个X字符 倒过来。 但使用sed,您可以替换: sed 's/.*\(.\{5\}\)$/\1/' 我的第一个想法是: 倒线 剪切最后/第一个X字符 倒过来。 但使用sed,您可以替换: sed 's/.*\(.\{5\}
sed 's/.*\(.\{5\}\)$/\1/'
我的第一个想法是:
倒线
剪切最后/第一个X字符
倒过来。
但使用sed,您可以替换:
sed 's/.*\(.\{5\}\)$/\1/'
你可以用
sed -n '14 s/VERSION *: *//p' file
见
使用s/VERSION*:*/,您只需删除版本、0个或更多空格、0个或更多空格。您可以使用
sed -n '14 s/VERSION *: *//p' file
见
使用s/VERSION*:*/,您只需删除版本、0个或更多空格、0个或更多空格。请尝试以下操作
awk '/VERSION/{print substr($0,length($0)-4)}' Input_file
简要说明:查找具有字符串版本的行,然后使用subtr打印子字符串,从长度4到行的最后一个字符
关于OP的问题,为什么我们必须以代码长度$0-4而不是长度$0-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($0)-4 so that it takes value till last character).
你能试试下面的吗
awk '/VERSION/{print substr($0,length($0)-4)}' Input_file
简要说明:查找具有字符串版本的行,然后使用subtr打印子字符串,从长度4到行的最后一个字符
关于OP的问题,为什么我们必须以代码长度$0-4而不是长度$0-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($0)-4 so that it takes value till last character).
@Shox2711,不,它将是-4,只看到输出将是X.X.X,如下所示。它工作正常。@Shox2711,我在substr的解决方案中也添加了一个解释。@Shox2711,不,它将是-4,只看到输出将是X.X.X,如下所示。它工作正常。@Shox2711,我在substr的解决方案中也添加了一个解释。为什么不获取第三列?awk“{print$3}”很好奇为什么sed是首选的。为什么不获取第三列呢?awk“{print$3}”好奇为什么sed是首选。