2017-04-18 88 views
-1

在unix中,我有一堆文件,其中的id希望将文件名添加到文件头中,是否有人有小脚本?如何重命名unix文件中的头文件

我有一堆文件:

abc.xxx bac.xxx cba.xxx

每一个文件,我有我的数据拆分内,对每个部分的标题:

*asdasd-123123 datadata

*asdasd-345345 datadata

我想将文件名添加到其各自文件的标题中:

*abc_asdasd-123123 datadata

*abc_asdasd-345345 datadata

BR Slyngej

回答

0

这应该做

#!/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 
+0

嗨感谢您的快速答复。但是,在每个文件中,有几个标题,并且id喜欢将文件名添加到所有文件中,不仅第一行 – steffen

+0

命令“sed”用于修改文件。文档在这里:https://www.gnu.org/software/sed/manual/sed.html。在这个例子中,我使用“1”作为“地址”,哪一行是sed应该操作的。所以你阅读文档的第4部分,并相应地修改命令。使用“s”命令,这在3.3节中描述。 – yosukesabai