awk
имеет дело с полями . Рассматривайте свой разделитель как '/'
, а awk
делает разделение тривиальным, например,
$ echo "https://example.com/dir1/dir2/dir3/file.txt" |
awk -F/ '{for(i=1;i<=NF;i++) if(length($i)) print "field[" i "]: " $i}'
field[1]: https:
field[3]: example.com
field[4]: dir1
field[5]: dir2
field[6]: dir3
field[7]: file.txt
Поскольку внутренняя переменная awk
NF
автоматически предоставляет количество полей, не имеет значения, сколько слэшей вы иметь. С помощью команды length()
вы можете просто пропустить пустое поле между '//'
.