У мене є файл, який містить такі рядки:
/logs/tc0001/tomcat/tomcat7.1/conf/catalina.properties:app.env.server.name = demo.example.com
/logs/tc0001/tomcat/tomcat7.2/conf/catalina.properties:app.env.server.name = quest.example.com
/logs/tc0001/tomcat/tomcat7.5/conf/catalina.properties:app.env.server.name = www.example.com
У наведеному вище висновку я хочу витягнути 3 поля (№ 2, 4 і останнє *.example.com). Я отримую такий результат:
cat file | awk -F'/' '{print $3 "\t" $5}'
tc0001 tomcat7.1
tc0001 tomcat7.2
tc0001 tomcat7.5
Як я також витягую останнє поле з доменним ім'ям, яке є після '='? Як використовувати multiple delimiterдля вилучення поля?
awkбуло ковтання полів, коли вони були порожніми, які визначали нумерацію полів. Я змінив-F " "до-F "[ ]"іawkне ковтати порожні поля більше.