mac sed добавляет новые строки перед соответствующим контентом - PullRequest
0 голосов
/ 11 мая 2018

Нам нужно добавить комментарии в наш проект ios, метод OC объявляется как - (void)..., я хочу написать скрипт, который поможет мне сделать это.В исходных файлах я хочу добавить комментарии перед объявлением метода с помощью //method name: ...., но я плохо разбираюсь в оболочке ...

Например,

- (id)initWithWindow:(UIWindow *)window;

- (id)initWithView:(UIView *)view;

- (void)show:(BOOL)animated;

- (void)hide:(BOOL)animated;

- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;

Я хочудобавить новые строки, как это:

.
.
.
//method: - (void)hide:(BOOL)animated;
//parma: animated
- (void)hide:(BOOL)animated;

//method: - (id)initWithView:(UIView *)view;
//parma: view
- (id)initWithView:(UIView *)view;
.
.
.

Как мне сделать с оболочкой на Mac?

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Вы можете использовать следующую команду:

sed 's|^- (.*)\([a-z]*\);|//method: &\n//parma: \1\n&|g' inputfile > outputfile

Пример ввода:

- (id)initWithWindow:(UIWindow *)window;

- (void)hide:(BOOL)animated;

- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;

Пример вывода:

//method: - (id)initWithWindow:(UIWindow *)window;
//parma: window
- (id)initWithWindow:(UIWindow *)window;   

//method: - (void)hide:(BOOL)animated;
//parma: animated
- (void)hide:(BOOL)animated;

//method: - (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;
//parma: delay
- (void)hide:(BOOL)animated afterDelay:(NSTimeInterval)delay;
0 голосов
/ 12 мая 2018

Я думаю, вы хотите что-то вроде этого:

sed '/-/{h;s|^|//method: |;p;g;s|.*)|//parma: |;s|;$||;p;g;}' filename

Это выведет результат на экран. Вы можете перенаправить его в другой файл:

sed '/-/{h;s|^|//method: |;p;g;s|.*)|//parma: |;s|;$||;p;g;}' filename > newfile

Или измените старый файл на месте:

sed -i '' '/-/{h;s|^|//method: |;p;g;s|.*)|//parma: |;s|;$||;p;g;}' filename

Это умеренно сложная команда sed. Если вы хотите понять это, я предлагаю вам сначала попрактиковаться в более простых командах sed.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...