Como en el ejemplo, estoy tratando de obtener números de línea que contienen el patrón. Mi patrón contiene barras, por lo que quería agregar un delimitador personalizado.
Este simple funciona:
sed -n '/file/=' temp.txt
El uso del delimitador para el reemplazo de cadenas también funciona:
sed 's|file|gile|' temp.txt
pero cuando quiero agregar un delimitador al primer ejemplo, no:
sed -n '|file /etc|=' temp.txt
Sé que puedo escapar de las barras, pero preferiría agregar un delimitador personalizado. ¿Alguna idea de cómo arreglar mi comando?
Respuesta aceptada:
Stéphane te dio el sed
solución:
sed -n '|file /etc|=' file
Si está abierto a usar otras herramientas, también puede hacerlo
grep -n 'file /etc' file
Eso también imprimirá la línea en sí, para obtener solo el número de línea intente:
grep -n 'file /etc' file | cut -d: -f 1
O bien, puede usar perl
:
perl -lne 'm|file /etc| && print $.' file
O awk
:
awk '$0 ~ "file /etc" {print NR}'