kann keinen Fehler in der Sed-Substitution finden [duplizieren]


0

Diese Frage hat hier bereits eine Antwort:

Ich versuche, Include-Guards in Kopfzeilen durch dieselben Include-Guards zu ersetzen, denen Folgendes vorangestellt ist #pragma once:

#ifndef _HELLO_H
#define _HELLO_H

Wird:

#pragma once
#ifndef _HELLO_H
#define _HELLO_H

Außerdem möchte ich die Zeilenenden unverändert lassen. Wenn es sich um LF handelte, verwenden Sie LF. Wenn es sich um CRLF handelte, verwenden Sie CRLF.

Ich habe mir folgenden Befehl ausgedacht:

find . -type f -name "*.h" -print0 | xargs -0 sed -i -E -e 's/#ifndef ([a-zA-Z_][a-zA-Z_0-9]+)(\r?\n)#define \1/#pragma once\2#ifndef \1\2#define \1/g'

Aber ich habe nur Zeilenenden in allen Überschriften ersetzt und keine #pragma oncehinzugefügt.

Befehl im MSYS2-Terminal unter Windows ausgeführt.

Antworten:


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.