Как я добавляю префикс/суффикс к каждой строке файла?

Например, file1 содержит:

entry1:value1
entry2:value2
entry3:value3

Теперь я хочу добавить префикс "file1": к каждой строке:

file1:entry1:value1
file1:entry2:value2
file1:entry3:value3

Как я могу сделать это в одной командной строке?

Я использую Bash.

BTW, ведущее пространство должно быть сохранено, таким образом, Bash встроенная строка чтения не работает на меня.

5
задан 28.02.2017, 01:11

4 ответа

% sed 's/^/file1:/' file1
9
ответ дан 07.12.2019, 16:51

read разделения $IFS, таким образом, необходимо очистить это сначала.

while IFS= read line
do
  echo "file1:$line"
done
1
ответ дан 07.12.2019, 16:51

Выход из специальных символов:

printf -v prefix %q 'ab\cd%;,: /{][}-+*'; prefix=${prefix////\\/}; sed "s/^/$prefix/" file
1
ответ дан 07.12.2019, 16:51

AWK, эквивалентный из ответа sed:

awk '{gsub(/^/,"file1:")}1' file

Или просто:

awk '{$0="file:1"$0}1' file
1
ответ дан 07.12.2019, 16:51

Теги

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