Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Cat文件中第14行的最后X个字符_Linux_Sed_Cat - Fatal编程技术网

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

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\}

我有一个文件,其中一行的版本是:X.X.X

我想在控制台上只返回该行的X.X.X部分。 首先,我需要得到我正在使用的线路

sed-n 14p filename.txt

我只是有点不知所措,不知道如何只返回行的最后5个字符,而不是完整的行。

我的第一个想法:

倒线 剪切最后/第一个X字符 倒过来。 但使用sed,您可以替换:

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是首选。