2015-05-27 53 views
1

從來就寫行命令這一點,但它doesn't工作添加相同的消息幾個文件在Linux

cat fich?.txt < hi, adding message for several files 

從來就得到了以下文件

fich1.txt fich2 .TXT fich3.txt fich4.txt fich5.txt fich6.txt

+0

你創建文件或修改它們的開始,新的內容? – user2182349

+0

我在修改它們 – mangulom

+0

你很可能沒有一個名爲'hi,'的文件來重定向輸入,也沒有一個名爲'adding','message','for','several'或'files'的文件爲'貓'閱讀。我懷疑你得到一個「bash:嗨,:沒有這樣的文件或目錄」類型的消息給予該命令; '貓'永遠不會開始。你真的想做什麼? – twalberg

回答

2
for f in fich?.txt; do 
    cat message.txt >>$f 
done 

這將增加(追加)文件message.txt的內容到所有與shell匹配模式fich?.txt匹配的文件。如果您希望更嚴格並且只匹配您提到的特定文件,請使用fich[1-6].txt的模式。

要添加的東西給每個文件的開頭,這樣做:

for f in fich?.txt; do 
    tmpfile=$(mktemp XXXXX) 
    cat message.txt $f >$tmpfile 
    mv $tmpfile $f 
done 

沒有捕捉錯誤的發生在這裏,所以它不是防呆或超安全。

0

不同的方法 - 在插入文件

for f in fich*.txt; do 
    sed --in-place '1 ihi, adding message for several files' "$f"; 
done