2016-11-01 2 views
0

Я столкнулся с сценарием, где мне нужно напечатать текстовую часть той же строки при использовании команды cat или команды sed, например.Как объединить команду echo/print с другой командой, например cat или sed

У меня есть файл с 5 строки в нем, показывая

Tom 

Seniorsupport 

5 

U 

Моя цель состоит в том, чтобы напечатать определенный текст в начале каждой строки, придав ему еще один столбец, будучи более специфичным

ВЫВОД Я ХОЧУ:

Grantee/Username: Tom 

Role name:   Seniorsupport 

Priority:   5 

Usertype:   U 

есть много способов, как это можно сделать, но я хотел бы быстрый и легкий способ

ответ

0

Один из способов, который я решил сделать, это использовать команду awk.

cat filename | awk '{print "Grantee/Username: " $1}' | sed -n '1p' 

выше команда будет кот файл и распечатать текст с помощью функции печати AWK только строка 1 в файл, используя патч в команду

+0

Для печати specfic текста для каждой строки изменить SED номер команды до двух, например, печатать текст для строки 2 (SED -n «2р») –

+0

Пожалуйста, пост кода путем редактирования вопроса. – ritesht93

0

Вы можете иметь название (столбец 1) остаться в file1 и фактические значения в file2, а затем вы можете вставить их бок о бок, используя paste команду:

$ cat file1 
Grantee/Username 
Role name 
Priority 
Usertype 
$ cat file2 
Tom 
Seniorsupport 
5 
U 
$ paste <(awk '{printf "%-19s\n", $0 ":"}' file1) file2 
Grantee/Username: Tom 
Role name:   Seniorsupport 
Priority:   5 
Usertype:   U 
0

Написать заголовки в другом файле («ключевом файле»). Объедините данные и ключи с awk. Используя приемы описаны в What is "NR==FNR" in awk? вы можете написать

awk 'NR==FNR {a[FNR]=$0; next} {printf("%-20s%s\n", a[FNR] ":", $0) }' keyfile datafile 
Смежные вопросы