如何在unix中重命名文件头
在unix中,我有一堆文件,我希望将文件名添加到文件头中,有人有小脚本吗 我有一堆文件:如何在unix中重命名文件头,unix,Unix,在unix中,我有一堆文件,我希望将文件名添加到文件头中,有人有小脚本吗 我有一堆文件: abc.xxx bac.xxx cba.xxx 在每个文件中,我对数据进行了拆分,每个部分都有一个标题: *asdasd-123123 数据数据 *asdasd-345 数据数据 我希望将文件名添加到各自文件的标题中: *abc_asdasd-123123 数据数据 *abc_asdasd-345 数据数据 溴 Slyngej这应该可以 #!/bin/bash for f in ???.xxx # gr
abc.xxx
bac.xxx
cba.xxx
在每个文件中,我对数据进行了拆分,每个部分都有一个标题:
*asdasd-123123
数据数据
*asdasd-345
数据数据
我希望将文件名添加到各自文件的标题中:
*abc_asdasd-123123
数据数据
*abc_asdasd-345
数据数据
溴
Slyngej这应该可以
#!/bin/bash
for f in ???.xxx # grab file names in directory
do
tag=`echo $f | cut -c -3` # pick first 3 char to tag data
sed "1s/^\*/*${tag}_/" $f > $f.mod # modify first line, save it with .mod extention
done
嗨,谢谢你的快速回答。但是,在每个文件中都有几个标题,我希望将文件名添加到所有标题中,而不仅仅是第一个linea命令“sed”用于修改文件。文档位于此处:。在本例中,我使用“1”表示“地址”,这是sed应该操作的行。因此,您阅读了文档的第4节,并相应地修改了命令。使用“s”命令,如第3.3节所述。
用于*.xxx中的f;do tag=“$(echo“$f”| cut-c-3)”;sed“s/^\*/*${tag}\/”$f“>“$f”.mod;完成
?