Я очень новичок в Shell Scripting, так что это может быть очень простое решение, но я изо всех сил пытаюсь заставить его работать. У меня есть файл с этим содержанием:

example1.eu 
example2.eu 
example3.eu

То, что я пытаюсь сделать, это выводить содержимое файла в одну строку форматирования примерно так.

test.example1.eu, test.example2.eu, test.example3.eu

и так далее.

У меня есть это в моем сценарии, но я не могу понять, как добавить "тест" для первой записи в файле.

cat file | xargs | sed -e 's/ /,test./g'

example1.eu, test.example2.eu, test.example3.eu

Пожалуйста, посоветуйте Спасибо

2 ответа2

2

Вы можете использовать «вставить» для установки разделителя. Например

cat file | sed -e 's/^/test./' | paste -sd ','

Изменить: Улучшенная версия (комментарий tripleee)

sed file -e 's/^/test./' | paste -sd ','
0

Это можно сделать с помощью команды awk :

 $ awk '{a=a"test."$0","}END{sub(/,$/,"",a);print a}' file
 test.example1.eu,test.example2.eu,test.example3.eu

Это создает строковую переменную a и добавляет каждую строку и запятую к строке. Затем он заменяет последнюю запятую ничем и печатает строку.

Предыдущий ответ с запятой:

 $ awk 'BEGIN{ORS=","}{print "test."$0}' file
test.example1.eu,test.example2.eu,test.example3.eu,

Это устанавливает разделитель выходных записей на запятую, а затем печатает каждую строку с test. добавлен к строке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .