例如,file1 包含:
entry1:value1
entry2:value2
entry3:value3
现在我想在每一行添加前缀“file1:”:
file1:entry1:value1
file1:entry2:value2
file1:entry3:value3
我怎样才能在一个命令行中做到这一点?
我正在使用 Bash。
顺便说一句,必须保留前导空格,所以 Bash 内置的读取行对我来说不起作用。
答案1
% sed 's/^/file1:/' file1
答案2
对我来说,最易读、最容易记住的是添加前缀和后缀如下:
$ echo " foo bar " | awk '{print "--"$0"++"}'
输出
-- foo bar ++
请注意,包括前导/尾随空格在内的整个输入都会被保留。
答案3
使用 AWK,您可以添加几乎任何前缀:
awk -v PRE='anything:' '{$0=PRE$0; print}' file1
即使对于花哨的不可打印字符,这也将起作用。
答案4
转义特殊字符:
printf -v prefix %q 'ab\cd%;,: /{][}-+*'; prefix=${prefix////\\/}; sed "s/^/$prefix/" file