Например, file1 содержит:
entry1:value1
entry2:value2
entry3:value3
Теперь я хочу добавить префикс "file1": к каждой строке:
file1:entry1:value1
file1:entry2:value2
file1:entry3:value3
Как я могу сделать это в одной командной строке?
Я использую Bash.
BTW, ведущее пространство должно быть сохранено, таким образом, Bash встроенная строка чтения не работает на меня.
read
разделения $IFS
, таким образом, необходимо очистить это сначала.
while IFS= read line
do
echo "file1:$line"
done
Выход из специальных символов:
printf -v prefix %q 'ab\cd%;,: /{][}-+*'; prefix=${prefix////\\/}; sed "s/^/$prefix/" file
AWK, эквивалентный из ответа sed:
awk '{gsub(/^/,"file1:")}1' file
Или просто:
awk '{$0="file:1"$0}1' file