11
Tôi đang lặp qua các dòng trong một tệp. Tôi chỉ cần bỏ qua các dòng bắt đầu bằng "#". Tôi làm như thế nào?bash loop bỏ qua dòng nhận xét
#!/bin/sh
while read line; do
if ["$line doesn't start with #"];then
echo "line";
fi
done < /tmp/myfile
Cảm ơn bạn đã trợ giúp!
Bạn cũng có thể làm điều gì đó quá thông minh với 'expr' hoặc hậu tố loại bỏ (ví dụ:' [-z "$ { line %% # *} "]'), nhưng chúng sẽ có giá trị bằng hoặc ít hơn so với tùy chọn 'case', tôi nghĩ vậy. – pilcrow
Để tách các dòng trong đó khoảng trống (chỉ) đứng trước '#', sử dụng 'grep -v '^ \ s * #' tmp/myfile' - điều này phù hợp với giải pháp' case', cho rằng 'đọc 'dải khoảng trống đầu và cuối. – mklement0
Một tùy chọn khác (nếu vì lý do nào đó mà ai đó muốn tránh 'grep') có thể là' if [[$ line = ~^#]]; sau đó tiếp tục; fi'. –