我在文本文件中有这样的输出,其中^M表示CR
Last login: Sat Jan 22 09:49:50 2023 from 10.1.1.1^M
Cisco Router
uptime
exit -f
Connecting user mike from 10.1.1.1
****************************************** Warning ******************************************^M
^M
Warning monitoring.^M
^M
*********************************************************************************************^M
[ ne ]^M
mike@grv1.nue99.de> uptime^M
^[[1A^[[2K^[[1A^[[2Kmike@grv1.nue99.de> uptime^M
9 days, 3:43^M
[ ne ]^M
mike@grv1.nue99.de> exit -f^M
Shutting down the session^M
^M
Connection closed
Last login: Sat Jan 21 09:49:49 2023 from 10.1.1.1^M
Cisco Router
uptime
exit -f
Connecting user mike from 10.1.1.1
****************************************** Warning ******************************************^M
^M
Warning monitoring.^M^M
^M
*********************************************************************************************^M
^M
[ ne ]^M
mike@grv2.nue99.de> uptime^M
^[[1A^[[2K^[[1A^[[2Kmike@grv2.nue99.de> uptime^M
10 days, 3:43^M
[ ne ]^M
mike@grv2.nue99.de> exit -f^M
Shutting down the session^M
^M
Connection closed
Last login: Sat Jan 21 09:49:49 2023 from 10.1.1.1^M
Cisco Router
uptime
exit -f
Connecting user mike from 10.1.1.1
****************************************** Warning ******************************************^M
^M
^M
*********************************************************************************************^M
^M
[ ne ]^M
mike@grv1.nue98.de> uptime^M
^[[1A^[[2K^[[1A^[[2Kmike@grv1.nue98.de> uptime^M
11 days, 3:43^M
[ ne ]^M
mike@grv1.nue98.de> exit -f^M
Shutting down the session^M
^M
Connection closed
Last login: Sat Jan 21 09:49:49 2023 from 10.1.1.1^M
Cisco Router
uptime
exit -f
Connecting user mike from 10.1.1.1
****************************************** Warning ******************************************^M
^M
^M
*********************************************************************************************^M
^M
[ ne ]^M
mike@grv2.nue98.de> uptime^M
^[[1A^[[2K^[[1A^[[2Kmike@grv2.nue98.de> uptime^M
12 days, 3:43^M
[ ne ]^M
mike@grv2.nue99.de> exit -f^M
Shutting down the session^M
^M
Connection closed
^M我正试图实现这样的输出
grv1.nue99.de> uptime 9 days, 3:43
grv2.nue99.de> uptime 10 days, 3:43
grv1.nue98.de> uptime 11 days, 3:43
grv2.nue98.de> uptime 12 days, 3:43我试过了
awk '/mike@.*> uptime/ {print;getline;print}' testbeta1.text > testbeta2.txt
sed 's/mike@//g; s/> uptime/> uptime /g' test.txt > test1.txt
grep -oP 'mike@.*uptime.*\K[0-9]+\sdays.*' testbeta.text有人能帮我达到预期的输出吗?
发布于 2023-01-21 10:23:21
试试这个:
cat testbeta1.text | tr -d "\r" | tr "\n" " " | tr -s " " | grep -Eo 'mike@[^>]+> uptime [0-9]+ days, [0-9]+:[0-9]+' | cut -d "@" -f 2-解释:
tr -d "\r":删除所有CR字符tr "\n" " ":将每个LF字符替换为一个空格tr -s " ":仅用一个空格替换重复空间的每个序列grep -Eo 'mike@[^>]+> uptime [0-9]+ days, [0-9]+:[0-9]+':获取接受正则表达式的所有序列(-E),并且只接受它们(-o)cut -d "@" -f 2-:在第一个'@‘字符之后获得行的部分以你为例:
> cat testbeta1.text | tr -d "\r" | tr "\n" " " | tr -s " " | grep -Eo 'mike@[^>]+> uptime [0-9]+ days, [0-9]+:[0-9]+' | cut -d "@" -f 2-
grv1.nue99.de> uptime 9 days, 3:43
grv2.nue99.de> uptime 10 days, 3:43
grv1.nue98.de> uptime 11 days, 3:43
grv2.nue98.de> uptime 12 days, 3:43https://unix.stackexchange.com/questions/732555
复制相似问题