1

Я хотел бы обработать файл, который содержит определенный символ в середине некоторых слов и переместить его в начало этого слова. Он также может появляться в начале слова, но в этом случае он должен оставаться в исходном положении. Специальный символ ~. Я имею в виду:

Исходный файл:

This is a sentence with the cha~racter in the middle of a word.
This is a sentence with the ~character at the beginning of a word.
This is a sentence without the character.

Ожидаемый результат:

This is a sentence with the ~character in the middle of a word.
This is a sentence with the ~character at the begining of a word.
This is a sentence without the character.

Можно ли это сделать с помощью сценария sed?

2 ответа2

2
$ sed 's/\b\(\w\+\)~\(\w\+\)\b/~\1\2/g' <<< 'This is a sentence with the cha~racter in the middle of a word.
> This is a sentence with the ~character at the beggining of a word.
> This is a sentence without the character.'
This is a sentence with the ~character in the middle of a word.
This is a sentence with the ~character at the beggining of a word.
This is a sentence without the character.
0

Это может работать для вас:

sed 's/\<\([^~][^ ~]*\)~/~\1/g' file
This is a sentence with the ~character in the middle of a word.
This is a sentence with the ~character at the beggining of a word.
This is a sentence without the character.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .