2014-10-13 3 views
1

У меня есть три файла со следующим содержимым:Строка в качестве разделителя для `paste` команды

one.txt

a 
b 
c 

two.txt

1 
2 
3 

три .txt

Some text with all kinds of characters (but no single quote). 
More text, also with "all kinds of characters" (and no single quote either). 
Same as before. 

Я хочу объединить три файла в:

'a', '1', 'Some text with all kinds of characters (but no single quote).' 
'b', '2', 'More text, also with "all kinds of characters" (and no single quote either).' 
'c', '3', 'Same as before.' 

, то есть, я хочу строку ', ' (т.е. одинарная кавычка, запятая, пробел, одинарная кавычка) в качестве разделителя между тремя файлами, и - если вы хотите попробовать свои силы с помощью расширенного ответа - ' - начало и конец каждой новой строки.

ответ

1

Использование paste с awk:

paste one.txt two.txt three.txt | awk -F '\t' -v SQ="'" -v OFS=', ' '{ 
    for (i=1; i<=NF; i++) printf "%s%s%s%s", SQ, $i, SQ, (i<NF)?OFS:ORS}' 
'a', '1', 'Some text with all kinds of characters (but not single quote).' 
'b', '2', 'More text, also with "all kinds of characters" (and no single quote either).' 
'c', '3', 'Same as before.' 
+0

Да, это действительно 'паста one.txt two.txt three.txt'. У меня просто были мои имена файлов как '1 2 3' – anubhava

+0

Проверить обновленный скрипт для вашего отредактированного вопроса. – anubhava

+0

Фантастический! Спасибо :-) –

Смежные вопросы