Вместо теста NR == FNR
для проверки обработки первого файла можно сделать:
awk 'FILENAME == ARGV[1] {...} ...' file1 file2
Но это более дорогой тест, поэтому если file1
- обычный файл, то можно использовать подход @Archemar и вообще не запускать awk
, если первый файл пустой.
В случаях (не ваших), когда file1
и file2
должны быть одним и тем же файлом, вы можете сделать:
awk 'FILENAME == ARGV[1] {...} ...' file1 ./file1
Или:
awk 'FILENAME == "-" {...} ...' -
Еще лучший подход (переносимый и эффективный):
awk '!file1_processed {...} ...' file1 file1_processed=1 file2
Если вам нужно, чтобы это применялось на . /*.txt
например, вы сделаете:
set -- ./*.txt
first=$1; shift
awk '!first_processed {...} ...' "$first" first_processed=1 "$@"
GNU awk
-специфический подход:
awk 'ARGIND == 1 {...} ...' file1 file2
Recomendaría usar una dirección IP secundaria en su interfaz y vincular los procesos de su servidor a esa dirección, así:
# ip addr add 10.10.10.10/xx dev ens256
De esa manera, el sistema sabe lo que realmente está tratando de hacer(netstat
mostrará la información correcta, por ejemplo ), y su firewall es mucho menos complejo.