Как насчет:
:%s/.*/'&'/
«Заменить ноль или более символов теми символами, которым предшествует и следует одна кавычка -».
В awk можно было удалить некоторые поля/столбцы, назначив им пустую строку:
$ echo foo bar doo | awk '{$2 = ""; print}'
foo doo
Однако это оставляет пустое пространство там, где раньше было поле, и сворачивает другие пробелы в строке, как пробел перед asdf
здесь:
$ echo "foo bar doo asdf" | awk '{$2 = ""; print}'
foo doo asdf
Вместо этого вы можете что-то сделать с sed
и соответствующим регулярным выражением:
$ echo '0x1230ac1 User_Attribute1 Brown Fox is Near' |
sed -Ee 's/([^[:space:]]+[[:space:]]+){2}//'
Brown Fox is Near
[^[:space:]]+
соответствует набору не -пробелов символов, [[:space:]]+
ряду пробелов, а окружающий (...){2}
делает это дважды, поэтому все до второго запуска пробелов удаляется. Это должно работать, если пробелы - это пробелы или вкладки.
Итак, если я правильно понял вашу ситуацию, это должно подойти:
$ show attr=0x1230ac1 | sed -E -e 1d -e 's/([^[:space:]]+[[:space:]]+){2}//'
Для этого можно использовать gnu sed:
sed -nEe '2s/\S+/\n&/3;s/.*\n//p'
Предполагается, что переменная не имеет новой строки. И идентификатор пользователя не содержит пробелов.