Điểm:1

Cách chọn các cột cụ thể trong một tệp xen kẽ giữa các dòng

lá cờ af

Tôi có một tệp văn bản chứa các dòng thông tin trình tự protein và các trình tự liên quan.

>4YDY_1|Chuỗi A, C[auth B]|DARPIN 44C12V5|cấu trúc tổng hợp (32630)
MRGSHHHHHHGSDLGKKLLEAARAGQDDEVRILMANGADVNALDDSGYTPLHLAAEDGHLEIVEVLLKHGADVNAADRLGDTPLHLAAFVGHLEIVEVLLKAGADVNAVDLAGVTPLHVAAFYGHLEIVEVLLKAGADVNAQDKFGKTPADIAADNGHEDIAEVLQKLN

Đối với các chuỗi này có một trình tự. Tôi muốn chạy qua từng dòng của tệp và chỉ giữ lại ID và chuỗi đầu tiên, xóa số thực thể ngay sau ID (_1), đặt dấu phẩy giữa ID và chuỗi e xóa mọi thứ khác trong dòng. Hoạt động này nên được thực hiện một dòng có và một dòng không. Ngoài ra, có một số dãy (các chữ cái ở dòng thứ hai) có ít hơn 50 chữ cái. Tôi muốn xóa mọi chuỗi chứa ít hơn 50 chữ cái cùng với ID của nó, là dòng phía trên nó.

Để rõ ràng, đây là đầu ra tôi đang tìm kiếm cho mọi chuỗi trong tệp:

>4YDY:A
MRGSHHHHHHGSDLGKKLLEAARAGQDDEVRILMANGADVNALDDSGYTPLHLAAEDGHLEIVEVLLKHGADVNAADRLGDTPLHLAAFVGHLEIVEVLLKAGADVNAVDLAGVTPLHVAAFYGHLEIVEVLLKAGADVNAQDKFGKTPADIAADNGHEDIAEVLQKLN

Cảm ơn bạn trước.

lá cờ cn
Ray
Đối với những gì bạn muốn làm, có lẽ bạn muốn chuyển sang Perl hoặc Python. Có lẽ ai đó khác có thể giúp bạn với `bash`, nhưng tôi nghĩ điều đó sẽ khá khó khăn.
Điểm:0
lá cờ jp

Điều này đã được thử nghiệm và hoạt động với ví dụ của bạn.

#!/bin/bash
# Đọc tệp hai dòng cùng một lúc
trong khi đọc -r một; làm
   đọc -r hai
   # Nếu dòng thứ hai dài từ năm mươi ký tự trở lên
   nếu ((${#hai} >= 50)); sau đó
     NẾU='|' đọc -ra f <<< "$one"
     id="${f[0]}"
     # Xóa dấu gạch dưới "_" và mọi thứ sau nó khỏi ID
     id=${id%_*}
     # Lấy chuỗi đầu tiên
     chuỗi="${f[1]}"
     chain=$(cut -d ' ' -f2 <<<"$chain" | cut -d ',' -f1)
     one="$id:$chain" 
     # In hai dòng theo định dạng mong muốn
     printf '%s\n' "$one" "$two"
   fi
xong < file.txt

Đă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.