Dans un shell Linux, je veux m'assurer qu'un certain ensemble de fichiers commence par <?
avoir cette chaîne exacte et aucun autre caractère au début. Comment puis-je utiliser grep ou utiliser un autre pour exprimer "le fichier commence par"?
Edit: je joker cela, et head
ne donne pas de nom de fichier sur la même ligne, donc quand je le salue, je ne vois pas le nom de fichier. De plus, "^<?"
ne semble pas donner les bons résultats; en gros, je reçois ceci:
$> head -1 * | grep "^<?"
<?
<?
<?
<?
<?
...
Tous les fichiers sont vraiment bons.
command-line
bash
grep
user13743
la source
la source
find
find
ne peut également renvoyer que des fichiers simples directement pour démarrer le canal.read
place dehead
:for file in *; do [ -f "$file" ] || continue; read < "$file"; [[ "$REPLY" =~ ^\<\? ]] || echo "$file"; done
Faites le
grep
:Analysez les noms de fichiers:
la source
Vous pouvez utiliser awk pour cela:
la source
Sauf pour les fichiers vides, ce script Perl semble fonctionner:
Je ne sais pas immédiatement comment gérer les fichiers vides; Je serais tenté de les traiter comme un cas spécial distinct:
la source
Essaye ça
Cela obtiendra une liste de tous les fichiers se terminant en PHP, puis passera en boucle. en faisant écho au nom du fichier, puis en imprimant la première ligne du fichier. Je viens d'insérer
vous donnera une sortie comme:
alors vous pouvez coller un grep normal à la fin pour vous débarrasser de ce que vous voulez voir et trouver juste des exceptions
production:
la source
for x in *.php;do echo $x \"
head -n1 $ x\";done
Bash 4.0
la source
devrait faire ce que vous demandez.
la source
cat
utilisation compulsivehead -1 file.txt | grep "^<?"
suffit.command
je prendrai le fichier en argument. Ce n'est peut-être pas strictement nécessaire, mais je ne le retire pas :)ce:
vous donne quelque chose comme ça:
chaque fichier ne contenant pas votre motif sera "marqué" par "1". vous pouvez jouer avec cela jusqu'à ce qu'il corresponde à vos besoins.
la source
head -1 "$i" | grep '^<?' || echo "$i"
qui n'imprimera le nom du fichier qu'en cas de problème.Laisse-moi essayer
personne n'a dit que le wak n'était pas disponible :-)
la source