У мене є файл, який містить такі рядки:
/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
не ковтати порожні поля більше.