我想读取一个文件并使用shellscript将其打印到stdout.在python rsplit可以完成这项工作但我搜索并找到awk但我无法理解.
文件1:
#begin cow Host cow HostName 172.18.0.10 User root Port 22 #end cow #begin dns2 Host dns2 HostName 172.20.4.80 User root Port 22 #end dns2 #begin dns1 Host dns1 HostName 172.20.4.75 User root Port 22 #end dns1 #begin dns3 Host dns3 HostName 172.20.4.76 User root Port 22 #end dns3 #begin dns4 Host dns4 HostName 172.20.4.77 User root Port 22 #end dns4 #begin dns5 Host dns5 HostName 172.20.4.78 User root Port 22 #end dns5 #begin dns6 Host dns6 HostName 172.20.4.79 User root Port 22 #end dns6
解析后转向
Host: cow Hostname: 172.18.0.10 User: root Port: 22 Host: dns2 Hostname: 172.20.4.80 User: root Port: 22 Host: dns1 Hostname: 172.20.4.75 User: root Port: 22 Host: dns3 Hostname: 172.20.4.76 User: root Port: 22 Host: dns4 Hostname: 172.20.4.77 User: root Port: 22 Host: dns5 Hostname: 172.20.4.78 User: root Port: 22 Host: dns6 Hostname: 172.20.4.79 User: root Port: 22
任何人都可以帮助我,谢谢你
由于您未awk
在问题中提及您的命令,我假设您正在寻找解决方案awk
和解释.
AMD$ awk '!/^#/{printf $1": "$2" "}/end/{print '\n'}' File Host: cow HostName: 172.18.0.10 User: root Port: 22 Host: dns2 HostName: 172.20.4.80 User: root Port: 22 Host: dns1 HostName: 172.20.4.75 User: root Port: 22 Host: dns3 HostName: 172.20.4.76 User: root Port: 22 Host: dns4 HostName: 172.20.4.77 User: root Port: 22 Host: dns5 HostName: 172.20.4.78 User: root Port: 22 Host: dns6 HostName: 172.20.4.79 User: root Port: 22
对于NOT
以#
(!/^#/
)开头的所有行,print 1st
和2nd
由:
和分隔的字段和字段space
.继续这个直到我们点击end
模式(/end/
),我们将打印新行.
如果您正在寻找awk
已有命令的解释,请在问题中提及.