Tôi đã sau tập tin thử nghiệmsed - Bình luận một dòng phù hợp với một chuỗi cụ thể VÀ mà chưa được nhận xét ra
AAA
BBB
CCC
Sử dụng sed sau tôi có thể nhận xét ra các BBB dòng.
# sed -e '/BBB/s/^/#/g' -i file
Tôi muốn chỉ nhận xét ra dòng nếu nó chưa có # khi bắt đầu.
# sed -e '/^#/! /BBB/s/^/#/g' file
sed: -e expression #1, char 7: unknown command: `/'
Bất kỳ ý tưởng nào về cách tôi có thể đạt được điều này?
Điều đó có hiệu quả, cảm ơn! –
Điều này sẽ luôn luôn chỉnh sửa dòng phù hợp để bắt đầu với một #. Vì vậy, nếu nó bắt đầu với ba '#' s sau lệnh này nó sẽ "làm sạch" nó để chỉ bắt đầu với một '#'. Để giảm bớt vấn đề này nếu nó là một vấn đề, chỉ cần thay đổi phần phù hợp cho phù hợp (ví dụ: 'sed -e '/^BBB /' ...) –
'sed'/^ # BBB/'' bạn muốn nói. Nhưng nếu BBB ở đâu đó ở giữa nó sẽ không hoạt động. Có một tùy chọn để viết 'sed'/^ # /! {/ BBB/s/^/# /} ''sẽ hoạt động tốt hơn nhưng giải pháp ban đầu của tôi là đơn giản hơn, miễn là bạn biết giới hạn của nó. – aragaer