【发布时间】:2018-02-05 23:15:24
【问题描述】:
我有很多文件,它们的第一行作为标识符。随后的行是标识符的产品。这是文件的一个示例:
0G000001:
Product_2221
Product_2222
Product_2122
...
我想把标识符放在文件每一行的开头。最终输出是这样的:
0G000001: Product_2221
0G000001: Product_2222
0G000001: Product:2122
....
我想为我拥有的所有文件创建一个循环。我一直在尝试:
for i in $(echo `head -n1 file.$i.txt);
do
cat - file.$i.txt > file_id.$i.txt;
done
但我只复制文件的第一行。我知道 sed 可以在文件开头添加特定文本,但我无法确定该文本是文件的第一行并在 循环中 em>上下文。
【问题讨论】:
-
sed 用于
s/old/new/。你没有在做s/old/new/,所以你不应该考虑使用 sed。对于其他任何事情,只需使用 awk 来获得更简单、更清晰、更高效、更健壮、更便携、更可扩展等...解决方案。
标签: shell loops awk sed append