Всякий раз, когда слово «The» появляется в начале строки, я хочу переместить его в конец строки и использовать новое первое слово в строке с заглавной буквы. Например, «Небеса» становятся «Небесами». Я пытаюсь проверить это для моей библиотеки.

2 ответа2

3

Это должно работать:

sed 's/^The \(.*\)/\u\1 the/'
2

Если у вашего sed нет \u:

awk '$1 ~ "^The" {the=tolower($1); $1=""; char=toupper(substr($0,2,1)); rest=substr($0,3); print char rest, the}' inputfile

Присвоение нуля $ оставляет разделитель полей (пробел) на месте. Первый substr() начинается с символа 2, чтобы пропустить этот пробел. Запятая рядом с концом печатает OFS (разделитель выходного поля, по умолчанию используется пробел).

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