J'ai un fichier qui commence par quelques lignes de texte et continue avec beaucoup de lignes binaires. J'ai besoin de supprimer la ligne de texte depuis son début pour gagner un pur contenu binaire. Supposons que la section binaire commence par un mot spécial comme: Connexion. J'ai essayé de le faire en utilisant un script bash avec sed
pour supprimer toutes ces lignes de texte. Le problème est le suivant: les lignes de texte contenant /
caractère d'interpréter la cause sed
caractère après /
en entrée comme une commande séparée. Mon code est comme ceci:Comment remplacer ou supprimer les lignes contenant/caractère dans BASH?
while read line
do
sed -i "/"$line"/d" file_name
if [ "$line" != Connection* ]
break;
done < file_name
cette façon, lorsque la variable "ligne" contient le caractère /
(par exemple css/mau) sed renvoie une erreur:
sed: expression -e # 1, carboniser 6: commande inconnue: `j »
Comment puis-je passer des variables contenant /
caractère à sed
supprimer les lignes liées? Par ailleurs, existe-t-il un moyen de séparer le contenu binaire du texte dans un fichier? Parfois, mes fichiers n'ont pas de mot spécial ou de signe au début de la section binaire pour le reconnaître.
Merci pour votre réponse, mais comme je l'ai lu dans sed didacticiels en utilisant d'autres délimiteurs est possible juste pour le remplacement (avec des drapeaux) et n'est pas possible pour la suppression. heureusement, j'ai pu résoudre mon problème d'extraction de contenu binaire à partir de fichiers (en fait tcp flux de fichiers obtenus à partir de tcpflow) au moyen de l'outil "avant tout" et en personnalisant ensuite sa configuration. – Setareh
Vous avez raison et tort. Une adresse sous la forme '/.../' peut être changée en '\ c ... c' où' c' est n'importe quel caractère. En utilisant la commande 's /.../.../', les délimiteurs peuvent être changés comme si 'sc ... c ... c' où' c' est un caractère quelconque. – potong