Новая версия GNU sed поддерживает параметр -z.
Normally, sed reads a line by reading a string of characters up to the end-of-line character (new line or carriage return).
The GNU version of sed added a feature in version 4.2.2 to use the "NULL" character instead. This can be useful if you have files that use the NULL as a record separator. Some GNU utilities can genertae output that uses a NULL instead a new line, such as "find. -print0" or "grep -lZ".
Вы можете использовать эту опцию, если хотите, чтобы sed работал с разными строками.
sed -z 's/)[.]\nPORT/). \n0 closed ports\nPORT/g' inputfile
Обратите внимание, что в вашем примере ввода есть пробел после(0.00090s latency).
В моей системе /proc
равно 6h
, а /dev
равно 5h
.
Быстрый тест:
# for x in a b c d e f g h i j; do mkdir $x; mount -t tmpfs tmpfs $x; done
# stat */.
дал номера от 33h
до 3dh
с отсутствующим 35h
в середине (он использовался/run/user/1000/gvfs
). Похоже, просто динамическое выделение с первым свободным номером, используемым во время монтирования.
Обратите внимание, что числа используются повторно, поэтому, по крайней мере, в этом случае вы не можете надежно использовать st_dev
, чтобы определить, изменилась ли файловая система по определенному пути.