En un shell de Linux, quiero asegurarme de que un determinado conjunto de archivos comience con <?
esa cadena exacta y sin otros caracteres al principio. ¿Cómo puedo grep o utilizar algún otro para expresar "el archivo comienza con"?
Editar: estoy poniendo un comodín en esto, y head
no da un nombre de archivo en la misma línea, por lo que cuando lo aprendo, no veo el nombre de archivo. Además, "^<?"
no parece dar los resultados correctos; Básicamente estoy obteniendo esto:
$> head -1 * | grep "^<?"
<?
<?
<?
<?
<?
...
Todos los archivos son realmente buenos.
command-line
bash
grep
usuario13743
fuente
fuente
find
find
también puede devolver solo archivos planos directamente para iniciar la canalización.read
lugar dehead
también:for file in *; do [ -f "$file" ] || continue; read < "$file"; [[ "$REPLY" =~ ^\<\? ]] || echo "$file"; done
Hacer el
grep
:Analiza los nombres de archivo:
fuente
Puedes usar awk para esto:
fuente
A excepción de los archivos vacíos, este script de Perl parece funcionar:
No estoy seguro de cómo manejar archivos vacíos; Estaría tentado a tratarlos como un caso especial separado:
fuente
Prueba esto
Esto obtendrá una lista de todos los archivos que terminan en PHP, luego los recorre. haciendo eco del nombre del archivo y luego imprimiendo la primera línea del archivo. Acabo de insertar
le dará salida como:
entonces puedes pegar un grep normal al final para deshacerte de lo que quieres ver y encontrar solo excepciones
salida:
fuente
for x in *.php;do echo $x \"
head -n1 $ x\";done
Bash 4.0
fuente
debe hacer lo que pides.
fuente
cat
Uso compulsivo ,head -1 file.txt | grep "^<?"
es suficiente.command
tomará el archivo como argumento. Puede que no sea estrictamente necesario, pero no lo voy a sacar :)esta:
te da algo como esto:
cada archivo que no contenga su patrón será "marcado" con "1". puedes jugar con eso hasta que se ajuste a tus necesidades.
fuente
head -1 "$i" | grep '^<?' || echo "$i"
que solo imprimirá el nombre del archivo si es problemático.Déjame probar esto
nadie dijo que wak no estaba disponible :-)
fuente