Я пытался удвоить все латинские слова в строке, на самом деле нам также нужно заключить его в скобки.("lol" -> "(lollol)") "Слово" здесь означает последовательность латинских букв ( [A-Za-z] \ + ).Я много пробовал, например:
1) ls -l / bin |sed "s / [^] [A-Za-z] [^] / (&&) / g" , но он удваивает все символы, даже со специальными символами и цифрами
2) Также у меня есть идея взять все неподходящие слова в '|'скобки:
( ls -l / bin | sed "s / [^] [^ A-Za-z] [^] / | & | / g" )а затем удвоить все слова без скобок (еще не подумав, как) и удалите '|'скобки.Я понимаю, что неэффективно использовать 3 команды sed и что там может быть '|'символ в последовательности (хотя я знаю, как решить эту проблему).
Итак, после нескольких дней борьбы я решил воспользоваться помощью.
Вот несколько примеров:
1) "rwx" -> "(rwxrwx)"
2) "-rwx" -> "-rwx"
3) "jk2l" -> "jk2l"
4) "jkl" -> "(jkljkl) "
Теперь примеры строк:
1)" Я хочу 2 sh-w "->" (II) (wantwant) 2 sh-w "
2)"-rwx but th1-s" -> "-rwx (butbut) th1-s"