người đăng lần đầu tiên ở đây và tôi đã tìm kiếm khá lâu nhưng không tìm thấy chủ đề mà tôi có thể hiểu đủ rõ để giải quyết vấn đề của mình.
Tôi có một vòng lặp trong tập lệnh của mình tạo ra một số biến nhất định thông qua phân định cut -d và tôi muốn sử dụng các biến đó làm đầu vào cho sed để thay đổi một tệp khác nhau trong mỗi lần lặp lại. Kịch bản hiện tại của tôi là:
kịch bản hiện tại của tôi trông giống như:
cho đầu vào bằng $(tail -n 3 filea)
làm
a="$(echo $input | cut -d "," -f 1)"
b="$(echo $input | cut -d "," -f 2)"
c="$(echo $input | cut -d "," -f 3)"
tiếng vang $a
tiếng vang $b
tiếng vang $c
đuôi -n 1 fileb | sed 's,'$a','$c',2'
xong
Với đầu ra là:
K
26
t
KTTTXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
P
27
e
KKTxxxxxxxxxxxxxxxxxxxxxxxxxxx
S
31
P
KKTxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ví dụ, chuỗi ở vị trí 31 nên được thay thế bằng S nếu đó là P.
Trạng thái hiện tại của tôi là tôi nhận được các biến a và c được chuyển chính xác vào lệnh sed và các chuỗi tương ứng được thay thế nhưng thay đổi nó thành sed 's,'$a','$c','$b''
dừng bất kỳ sự thay thế nào và dòng fileb gốc (cuối cùng) được nhắc.
Tôi biết rằng đặt một câu hỏi hay là một chủ đề hoàn toàn khác, nhưng tôi hy vọng ai đó có thể giúp tôi hiểu cách viết ở đây để tôi có thể tiếp tục học lập trình vì tôi thường mắc phải những lỗi như thế này.