Điểm:1

Làm cách nào để thực hiện một vòng lặp trên các tệp có cùng một chuỗi trước dấu gạch dưới đầu tiên?

lá cờ ke

Tôi đang cố gắng thực hiện một vòng lặp trên Ubuntu trong đó tôi ghép hai tệp thành một tệp duy nhất. Thư mục có hàng nghìn tệp, tất cả đều đi theo cặp có cùng một chuỗi ký tự trước dấu gạch dưới đầu tiên. Ví dụ, thư mục chứa các tệp sau:

uce-1348_.nexus.phy.fasta
uce-1348_Sample1.fasta
uce-1611_.nexus.phy.fasta
uce-1611_Sample1.fasta

Tôi đã cố gắng thực hiện một cái gì đó dọc theo dòng

cho tôi trong *_*.fasta \
làm
con mèo $i > $i.combined.fasta
xong

nhưng điều này tất nhiên không hoạt động, vì nó không tạo các tệp kết hợp cụ thể cho chuỗi trước dấu gạch dưới đầu tiên.Tôi cần có một tệp được nối của uce-1348 và một tệp khác của uce-1611 (còn hàng nghìn tệp nữa, nhưng đây là một ví dụ nhỏ về những gì tôi đang tìm kiếm.

Bất kỳ trợ giúp sẽ được đánh giá cao. Tôi nghe nói bạn có thể đặt chuỗi và mẫu, nhưng tôi vẫn không biết cách thực hiện việc này. Cảm ơn bạn!

bac0n avatar
lá cờ cn
Điều quan trọng là thứ tự các tệp được nối với nhau?
Điểm:2
lá cờ ar

Bạn có thể lặp qua các tệp như bạn đã làm, nhưng sau đó bạn cần trích xuất phần đầu của tên tệp để xác định tệp đầu ra của mình.

Sau đó, bạn phải sử dụng >> để thêm vào tập tin đầu ra. Nếu bạn sử dụng một > nó sẽ ghi đè lên nội dung mỗi lần.

Vì vậy, sử dụng tên tệp của bạn:

đối với tệp *_*.fasta; làm
    đầu ra="${file/_*}.combined.fasta"
    con mèo "$file" >> "$output"
xong

Cách diễn đạt ${tệp/_*} sử dụng Mở rộng tham số Shell để xóa mọi thứ sau "_" đầu tiên trong tên tệp, để tạo tên tệp đầu ra của bạn.

Điểm:0
lá cờ hr

Bạn cần lặp lại một của các mẫu và tạo các tên tệp khác bằng cách sử dụng mở rộng tham số

Bán tại.

cho tôi trong *_.nexus.phy.fasta; làm 
  con mèo "$i" "${i/.nexus.phy/Sample1}" > "${i/_.nexus.phy/.combined}"
xong
Điểm:0
lá cờ cn

Ngoài việc sao chép và di chuyển mmv cũng có thể nối thêm nội dung của tệp nguồn vào tên mục tiêu.

mmv -a 'uce-*_*' 'uce-#1.combined.fasta'

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.