J'aiComment puis-je dire cela dans sed?
text text text [text text] \n
text text text [text text] \n
Je veux
text text text \n
text text text \n
Que RE puis-je utiliser?
J'aiComment puis-je dire cela dans sed?
text text text [text text] \n
text text text [text text] \n
Je veux
text text text \n
text text text \n
Que RE puis-je utiliser?
Les ouvrages suivants indépendamment du fait que le \n
est la fin de la ligne ou une barre oblique inverse et une lettre « n »:
sed 's/\[.*] //' $file
Le schéma ressemble à un crochet ouvert suivie d'une séquence de caractères à le dernier crochet fermant et un espace suivant (s'il y en a plusieurs). Vous pouvez affiner le '.*
' en '[^]]*
' pour faire correspondre tout ce qui n'est pas un crochet fermé; cela supprime uniquement le premier crochet fermé.
/[^\[]*/
vous obtient la plupart du chemin. Si rien n'apparaît après [...], alors c'est suffisant.
vous pouvez utiliser awk
$ more file
text [dont want text here ] text text [ dont want text] \n
text text text [ dont want text] \n
$ awk -vRS=']' '/\[/{gsub(/\[.*/,"")}1' ORS="" file
text text text \n
text text text \n
L'OP peut vouloir ajouter un espace à une extrémité ou th'other de cette regex, si des espaces sont intéressants. –
Pouvez-vous expliquer ce que vous allez faire d'autre avec cet ER? Il correspond à un modèle de «n'importe quoi sauf barre oblique inversée ou crochet ouvert», donc vous avez du travail à faire pour l'utiliser dans une opération de remplacement, n'est-ce pas? –