2009-10-31 31 views

Trả lời

10

sử dụng awk

awk 'FNR==1{print ""}{print}' file* > out.txt 
+0

Nhắc lại khó chịu. Nhưng điều này hoạt động: awk 'FNR == 1 {print ""} {print}' * .txt> /tmp/out.txt – Matt

+0

bạn có ý nghĩa gì là đệ quy khó chịu.? – ghostdog74

+1

Nếu tôi chạy dòng đó một mình lệnh không bao giờ thoát, và giữ thêm các tập tin vào out.txt (trong cùng một thư mục của các tập tin tôi đang ăn. Out.txt rất lớn, rất nhanh. (Một lần nữa, OSX 10.5.8 YRMV) – Matt

-2

echo "" > blank.txt
cat f1.txt blank.txt f2.txt blank.txt f3.txt

Để xử lý tất cả các tập tin trong một thư mục (giả sử ksh như Shell)

for file in * ; do
   cat $file >> result.txt
   echo "" >> result.txt
done

+0

Điều đó không có chăm sóc của tất cả các file trong thư mục trừ khi bạn tự liệt kê chúng như thông số. –

+0

cẩn thận nếu bạn mèo như thế với vòng lặp for mở rộng mọi thứ. $ tập tin có thể là một thư mục và bạn sẽ được catting một thư mục. – ghostdog74

2

Bạn có thể muốn xem pr(1), mà có thể làm những gì bạn muốn ngoài hộp.

Để cuộn của riêng bạn, mở rộng posix này shell script đoạn:

ls -1 | while read f; do cat "$f"; echo This is a spacer line; done > /tmp/outputfile 

này có thể readably hơn được viết như sau:

ls -1 | while read f; do 
    cat "$f" 
    echo This is a spacer line 
done > /tmp/outputfile 

Bạn không thực sự cần các -1 cho ls.

+0

Cảm ơn! Chỉ cần nhớ chuyển hướng đầu ra đến một thư mục khác (như trong giải pháp awk). – Matt

+0

Roger, đã cập nhật. – DigitalRoss

9

Hãy thử

find . -type f -exec cat {} \; -exec echo "-- spacer --" \; 

Rõ ràng, 'spacer' có thể được nhiều hơn ví dụ đơn giản sử dụng ở đây.

+0

Tác phẩm, nhưng tôi không thể sử dụng "\ n" làm phần đệm của tôi, nó chỉ sử dụng chữ '\ n'? – Matt

+0

Chỉ sử dụng 'echo" "' cho một dòng trống. Tôi nên nói rằng spacer có thể nhiều hơn * hoặc ít hơn * so với ví dụ. – pavium

+0

'echo" "' không hoạt động trên OS X? – Matt

-1

Tôi nghĩ rằng cách đơn giản nhất là sử dụng lệnh paste:

paste $(ls *) > file.out 
+0

Um, không, điều này không hoạt động. Dán làm một cái gì đó tương tự nhưng khác với câu hỏi được hỏi. Nó thay thế các tập tin. – Caleb

Các vấn đề liên quan