2015-10-18 95 views
1

我有以下Linux命令:從所有子文件夾打印到文件頭兩行

head -2 * > output.txt 

我要爲所有子文件夾運行此命令,並得到輸出到同一個文件。

輸出例如:

path_file1: 
first two lines of file1 

path_file2: 
first two lines of file2 

.. 
.. 
.. 

這是可能的Linux命令?如果是這樣,怎麼樣?

回答

2

您可以使用find命令中的-exec標誌執行head -2

find . -type f -exec head -2 {} \; > output.txt

0

這可能會爲你工作(GNU SED):

sed -sn '1,2p' * > /anotherDirectory/output.txt 
+0

謝謝您的回答。我試圖運行它,並得到'...是每個子文件夾的目錄錯誤。任何想法爲什麼? – Omri

0
output="" 

for f in $(find .) 
do 
    output=$output"\n\n${f}:\n"$(head -2 $f) 
    echo -e $output 
done 

echo -e $output > somefile.txt 

它通過循環利用找到的所有文件。「查找」,增加了兩個新行到輸出,其次是文件名和一個冒號,然後是頭-2命令。最後,一切都寫入somefile.txt

0

使用find結合head-v打印文件名)

find . -type f -exec head -vn2 {} \; >print.txt 
相關問題