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