Điểm:3

Có cách nào để tôi có thể tìm kiếm trong tệp về Thời gian hoạt động lớn hơn 100 ngày không?

lá cờ kr

Có cách nào để tôi có thể tìm kiếm trong một tệp cho Thời gian hoạt động lớn hơn 100 ngày thông qua các lệnh Linux Bash không?

Ví dụ, tập tin1 chứa:

Thời gian hoạt động là 172 ngày

Thời gian hoạt động là 562 ngày

Thời gian hoạt động là 30 ngày

thời gian chết là 197 ngày

Tôi có thể sử dụng lệnh nào để có kết quả như sau:

Thời gian hoạt động là 172 ngày

Thời gian hoạt động là 562 ngày
user535733 avatar
lá cờ cn
Điều này có vẻ giống như một câu hỏi bài tập về nhà.
Điểm:6
lá cờ cn

Đây là một cách đơn giản awk giải pháp:

awk '$1 == "Thời gian hoạt động" && $3 > 100 {print}' tệp1
Thời gian hoạt động là 172 ngày
Thời gian hoạt động là 562 ngày
Raffa avatar
lá cờ jp
Cũng có thể đơn giản hơn `awk '/Uptime/ && $3 > 100' file1`
Điểm:5
lá cờ cn

...và phức tạp hơn một chút đánh đập giải pháp:

trong khi đọc -r a b c d; làm
   [[ $a = Thời gian hoạt động && $c -gt 100 ]] && printf '%s %s %s %s\n' $a $b $c $d
hoàn thành < thời gian hoạt động
Thời gian hoạt động là 172 ngày
Thời gian hoạt động là 562 ngày
Điểm:4
lá cờ it

Và một tiếng kêu giải pháp, sử dụng Regexps mở rộng:

grep -E 'Thời gian hoạt động là [[:digit:]]{3}' thời gian hoạt động | \
  grep -Ev 'Thời gian hoạt động là 100'

Thao tác này sẽ tìm chuỗi "Thời gian hoạt động là ", theo sau là ít nhất 3 chữ số và loại bỏ chuỗi chính xác 100 tiếp theo là Cuối dòng.

David Foerster avatar
lá cờ us
Sử dụng tốt hơn `[[:digit:]]{3,}` (lưu ý dấu phẩy) cho các số có nhiều hơn 3 chữ số. Nếu có thể có các số 0 ở đầu, người ta có thể sử dụng `0*[1-9][0-9]{2,}` để không bao gồm các số đó vào số đếm.
marcelm avatar
lá cờ cn
@DavidFoerster Biểu thức trong câu trả lời sẽ hoạt động, bởi vì nó không được neo ở cuối theo bất kỳ cách nào. Đối với một dòng có bốn chữ số, chẳng hạn, biểu thức sẽ chỉ khớp với ba chữ số đầu tiên, nhưng vì biểu thức kết thúc ở đó nên biểu thức sẽ khớp với dòng đó. Nhưng tôi đồng ý biểu hiện của bạn là phong cách tốt hơn; nó thể hiện ý định tốt hơn và có nhiều khả năng tiếp tục hoạt động hơn nếu biểu thức được sửa đổi.
lá cờ vn
Điều này cũng sẽ không khớp với thời gian hoạt động trong 100 ngày, trong khi câu hỏi yêu cầu thời gian hoạt động hơn 100 ngày?
Điểm:2
lá cờ id

Chuyển đổi từ nhận xét của tôi.

sử dụng tiếng kêuawk cùng với nhau:

grep "Thời gian hoạt động" file1 | awk '$3 > 100 {print}'

Tìm kiếm "Thời gian hoạt động" trong tập tin1 rồi nhìn vào cột thứ 3 và in ra nếu lớn hơn 100.

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