Добавление части строки в виде слова рядом с ней и преобразование последнего слова строки в нижний регистр

Я хочу добавить часть строки в виде слова (формат) рядом с ним, а затем преобразовать последнее слово (формат) строки в нижний регистр

Например, у меня есть строка, как показано ниже

<http://example.com/Bob> Alex  

Мне нужен вывод как

<http://example.com/Bob> <Bob> <alex>

Я пробовал команды sed и tr, но безуспешно. Любые предложения будут полезны

Спасибо, Паллави.


person Pallavi    schedule 19.07.2014    source источник


Ответы (2)


с авк:

awk '{s=gensub(/.*\//,"","g");
      s=gensub(/>.*/,"","g",s);
      printf "%s <%s>",$1,s;
      for(i=2; i < NF; i++)
      {
        printf " %s",$i;
      }
      printf " <%s>\n",tolower($NF);}' input.txt

Or:

awk '{s=gensub(/.*\//,"","g");
      s=gensub(/>.*/,"","g",s);
      $1=$1" <"s">";
      $NF="<"tolower($NF)">";
      print;}' input.txt

Выход:

<http://example.com/Bob> <Bob> <alex>
person a5hk    schedule 19.07.2014

Что-то вроде этого?

sed 's@\(http://.*/\)\(.*\) \(.*\)@\1\2 \2 \L\3@' <<< "http://example.com/Bob Alex"

Предоставление:

http://example.com/Bob Bob alex
person lledr    schedule 19.07.2014