Soy consciente de que BSD sed se comporta de manera diferente de GNU sed con respecto a la -i
opción. Sin embargo, la forma habitual de usar sed -i ''
en macOS deja de trabajar cuando se utiliza un q
comando, y me pregunto si esto es un bug o si estoy con vistas a algo en la documentación. En cualquier caso, me gustaría saber cómo restaurar el comportamiento esperado para el siguiente comando:
printf foo\\nbar > test
sed -i '' /foo/q test
Resultado esperado:
$ ls -a
. .. test
$ cat test
foo
Resultado real:
$ ls -a
. .!79633!test .. test
$ cat test
foo
bar
$ cat .\!79633\!test
foo
En otras palabras: el archivo original se mantiene intacta. El resultado es escrito, en su lugar a un nuevo archivo oculto. El valor numérico en el nombre del archivo cambia con cada ejecución y se ve como un IDENTIFICADOR de proceso (está en el rango correcto, demasiado). El uso de q
sin una dirección le da el equivalente de comportamiento.