2016-01-21 31 views
-1

我想創建一個腳本,將文本(帶有許多行)作爲標題放在具有txt擴展名的多個文件中。但是要插入的文本需要放置將要插入的文件的文件名。使用bash添加一個帶有一個可變數字的文本到多個文件

文本(待填)

abcdgd FILENAME dhsgabc shcnwk shfgamvk cjshjg nwdcbi skfh nwvjcnd

skfh dvwuv

我有很多的文件,名爲001.txt,002。 txt,003.txt等等... SO NAMEFILE只需要001,002,003等等(不帶.txt擴展名)

th anks

+1

cooooooooooooooooooool – 123

+0

到目前爲止你做了什麼? – Noproblem

+0

我不知道該怎麼辦?我是初學者 – alloppp

回答

0

這個腳本會創建一個新的組命名001.txt.new,002.txt.new文件......與變化,你要求:

# Create a re-usable header file: 
cat > header << @@ 
abcdgd FILENAME dhsgabc shcnwk shfgamvk cjshjg nwdcbi skfh nwvjcnd 
@@ 

# Loop over all files: 
for i in [0-9][0-9][0-9].txt; do 
    # Get file name without suffix: 
    NAME=$(echo $i|sed -r 's/(.*)\.txt/\1/' 

    # Create a new file containing the modified header line: 
    cat header | sed 's/FILENAME/'"$NAME"'/' > ${i}.out 

    # Append contents of the original file to the new file: 
    cat $i >> ${i}.out 
done 

如果你想完全取代原來的文件,你可以加入這一行循環的結尾:

mv ${i}.out $i 

但你可能會想替換它們之前備份的原始文件以某種方式。

相關問題