Напишите bash-скрипт, который принимает данные из канала

Я всегда печатаю такие вещи:

cat some_list_of_elements.txt | awk '{print "\047"$1"\047"}' | paste -d, -s

Он берет список элементов из файла, заключает каждый в кавычки и объединяет их в список через запятую.

Вместо того, чтобы печатать все эти вещи, я хотел бы сделать что-то вроде этого:

cat some_list_of_elements.txt | csl

Как можно csl реализовать в bash? Есть ли способ сделать это как псевдоним?

2
задан 10 August 2012 в 01:17

2 ответа

alias csl="awk '{print "\047"$1"\047"}' | paste -d, -s"

затем просто cat whatever | csl

Кажется, это работает, но на самом деле это не так, по причинам, указанным в комментариях ниже. Посмотрите их для реальных, хороших рабочих решений:)

Кстати, это не специфично для Ubuntu, поэтому не стесняйтесь размещать сообщения на stackoverflow.com, если мой ответ не работает для вас.

0
ответ дан 10 August 2012 в 01:17

Это сработало для меня:

alias csl='awk '\''{print "\047"$1"\047"}'\'' | paste -d, -s'

Спасибо @roadmr за указание в правильном направлении.

0
ответ дан 10 August 2012 в 01:17

Другие вопросы по тегам:

Похожие вопросы: