GNU Баш, версия 4.3.42 (1) -релиз, вырезая на нулевой символ в переменной
Попытка deliminate на нулевой символ, но удар не кажется, держать нулевой символ в переменной ,
$ echo -e 'hello\0goodbye' > testlist
$ cat testlist | cut -d '' -f1
hello
$ foobar=$(echo -e 'hello\0goodbye'); echo "$foobar" | cut -d '' -f1
hellogoodbye
Есть ли что-то, что я делаю неправильно?
Почему вы думаете, что '' '' является нулевым символом? –
@ Miati, да. По моему опыту, оболочка не может содержать нулевой символ в переменной. Другие команды, такие как 'find' и' xargs', не имеют проблем. Однако оболочка может даже обрабатывать нулевой символ как часть строки, как вы можете видеть на выходе этой командной строки: 'echo -e 'A \ 0B' | od -tx1' – Jdamian
@Miati, я думаю, bash не может сохранить нулевой символ в переменной, потому что он используется как символ разделителя конца строки в C. – Jdamian