Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Shell 在linux中如何从句子中剪切字符串的一部分?_Shell - Fatal编程技术网

Shell 在linux中如何从句子中剪切字符串的一部分?

Shell 在linux中如何从句子中剪切字符串的一部分?,shell,Shell,如何使用cut或awk或grep获取发布版本详细信息 |1NP|192.168.4.10|disprofiling-blue|dts|136190715|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-release-20-05-13-REL |1NP|192.168.4.10|disprofiling-green|dts|136191553|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-relea

如何使用
cut
awk
grep
获取发布版本详细信息

|1NP|192.168.4.10|disprofiling-blue|dts|136190715|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-release-20-05-13-REL
|1NP|192.168.4.10|disprofiling-green|dts|136191553|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-release-20-04-29-REL
|1NP|192.168.4.10|profileing-blue|bdllts|144765480|awsxxxxxxx:5100/bdltts/profileing:perf-latest-release-20-05-12-REL
|1NP|192.168.4.10|profileing-green|bdllts|138530558|awsxxxxxxx:5100/bdltts/profileing:perf-latest-release-20-05-12-REL
|1NP|192.168.4.10|recorsrv-blue|bdllts|139683172|awsxxxxxxx:5100/bdltts/recorsrv:perf-latest-release-20-05-12-REL
例如:

|1NP|192.168.4.10|recorsrv-blue|bdllts|139683172|awsxxxxxxx:5100/bdltts/recorsrv:perf-latest-release-20-05-12-REL
预期产出:

-20-05-12-REL

假设您请求的输出来自一个文件(比如
file.txt
),并假设该文件可能如下所示:

|1NP|192.168.4.10|disprofiling-blue|dts|136190715|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-release-20-05-13-REL
|1NP|192.168.4.10|disprofiling-green|dts|136191553|awsxxxxxxx:5100/bdltts/disprofiling:perf-latest-release-20-04-29-REL
|1NP|192.168.4.10|profileing-blue|bdllts|144765480|awsxxxxxxx:5100/bdltts/profileing:perf-latest-release-20-05-12-REL
|1NP|192.168.4.10|profileing-green|bdllts|138530558|awsxxxxxxx:5100/bdltts/profileing:perf-latest-release-20-05-12-REL
|1NP|192.168.4.10|recorsrv-blue|bdllts|139683172|awsxxxxxxx:5100/bdltts/recorsrv:perf-latest-release-20-05-12-REL
并且还假设您想要获得的期望输出如下所示:

20-05-12-REL
您可以尝试以下方法:

cat file.txt |cut -d\: -f3 |cut -d\- -f4-7

参见本
-f4-7
部分?伙计,这是无价之宝,就像魔法一样

我向您展示我的代码:

~/Desktop$ cat s.txt 

Starting Nmap 7.60 ( https://nmap.org ) at 2020-04-05 04:16 CEST
Nmap scan report for ip-184-168-227-141.ip.secureserver.net (184.168.131.241)
Host is up (0.23s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
21/tcp  open  ftp
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 47.34 seconds

cool@cool-V100-X:~/Desktop$ cat s.txt | grep "184-168-227-141 " | cut -d " " -f 5 | tr '-' '.' | cut -d "." -f 2-5 | cat>sCopied.txt
cool@cool-V100-X:~/Desktop$ cat sCopied.txt
184.168.227.141

我用你最后的
-f4-6
魔术部分取出了Ip

你需要更具体的发布信息;例如,在帖子后面附加一个预期输出的部分。很高兴听到它对你有用。感谢分享另一个用例。