Проблема манипулирования текстом с помощью grep

Внутри / снаружи следует заменить внутреннюю / внешнюю установку. Установка Wubi справедлива, потому что вы можете использовать ее на короткое время, вы можете ее использовать. Если вы хотите получить доступ к полным функциям Ubuntu, вам необходимо установить рядом с другим разделом. Внешняя установка будет лучше.

4
задан 6 March 2011 в 17:51

10 ответов

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\
while read index; do
    sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search
done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 25 May 2018 в 22:40
  • 1
    Спасибо 4 повторения, я изменил процедуру, потому что иногда файл XML будет изменен, я имею в виду, что это может быть не всегда 8 строк вверх или 3 строки на дно .... – moata_u 8 March 2011 в 00:48
  • 2
    @moata_u Я ожидал, что это проблема, поэтому XMLStarlet будет хорошо смотреть. Это инструмент XML, который делает синтаксический анализ этого материала более надежным. – Shawn J. Goff 8 March 2011 в 00:56

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\ while read index; do sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 25 July 2018 в 22:23

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\ while read index; do sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 26 July 2018 в 21:10

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\ while read index; do sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 31 July 2018 в 13:11

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\ while read index; do sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 2 August 2018 в 03:50

Это было бы лучше сделано с библиотекой XML, но здесь оно находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

sed -n '/log4jConfigLocation/=' < test.test |\ while read index; do sed -i $search -e "$((index-1)) i\ <\!--" -e "$((index+8)) a\ -->" < $search done

Первая часть `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство. В конечном счете, однако, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet.

0
ответ дан 4 August 2018 в 19:54

Это было бы лучше сделано с помощью библиотеки XML, но здесь она находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

  sed -n '/ log4jConfigLocation / =' & lt;  test.test | \ во время чтения индекса;  do sed -i $ search -e "$ ((index-1)) i \ & lt; \! -" -e "$ ((index + 8)) a \ - & gt;"  & Lt;  $ search done  

Первая часть, `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство . В конечном счете, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet .

0
ответ дан 6 August 2018 в 03:57

Это было бы лучше сделано с помощью библиотеки XML, но здесь она находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

  sed -n '/ log4jConfigLocation / =' & lt;  test.test | \ во время чтения индекса;  do sed -i $ search -e "$ ((index-1)) i \ & lt; \! -" -e "$ ((index + 8)) a \ - & gt;"  & Lt;  $ search done  

Первая часть, `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство . В конечном счете, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet .

0
ответ дан 7 August 2018 в 21:54

Это было бы лучше сделано с помощью библиотеки XML, но здесь она находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

  sed -n '/ log4jConfigLocation / =' & lt;  test.test | \ во время чтения индекса;  do sed -i $ search -e "$ ((index-1)) i \ & lt; \! -" -e "$ ((index + 8)) a \ - & gt;"  & Lt;  $ search done  

Первая часть, `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство . В конечном счете, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet .

0
ответ дан 10 August 2018 в 10:09

Это было бы лучше сделано с помощью библиотеки XML, но здесь она находится в sed ...

Sed имеет команды i и a для вставки и добавления строк. Я думаю, что следующий скрипт поможет.

  sed -n '/ log4jConfigLocation / =' & lt;  test.test | \ во время чтения индекса;  do sed -i $ search -e "$ ((index-1)) i \ & lt; \! -" -e "$ ((index + 8)) a \ - & gt;"  & Lt;  $ search done  

Первая часть, `sed -n '/ log4jConfigLocation / =' получит номера строк, которые имеют« log4jConfigLocation ». Следующая часть использует эти номера строк в двух командах: вставьте строку линии 1 выше и добавьте строку 8 строк ниже.

Существует лучший способ использования буфера хранения sed, но я недостаточно осведомлен с этим; если вам интересно, вы можете увидеть это руководство . В конечном счете, если вы собираетесь регулярно работать с этим типом материалов, вы должны проверить XMLStarlet .

0
ответ дан 13 August 2018 в 16:30
  • 1
    Спасибо 4 повторения, я изменил процедуру, потому что иногда файл XML будет изменен, я имею в виду, что это может быть не всегда 8 строк вверх или 3 строки на дно .... – moata_u 8 March 2011 в 00:48
  • 2
    @moata_u Я ожидал, что это проблема, поэтому XMLStarlet будет хорошо смотреть. Это инструмент XML, который делает синтаксический анализ этого материала более надежным. – Shawn J. Goff 8 March 2011 в 00:56

Другие вопросы по тегам:

Похожие вопросы: