Điểm:2

Lọc nội dung lệnh bằng grep

lá cờ kn

Tôi đang cố gắng lọc ra đầu ra của ssh-keyscan. Mục tiêu của việc này là lọc đầu ra để tôi có thể sử dụng nó trong mã python của mình để xác định các máy chủ được kết nối với VPN của tôi. Thông thường tôi sẽ sử dụng grep để lọc, một trong những grep của tôi đang lọc đúng cách, còn cái kia thì không.Grep đầu tiên đang hoạt động để chỉ lấy ID ed25519, nhưng không chắc tại sao tôi cũng nhận được các dòng SSH-2.0.... Lệnh tôi đã chạy cùng với đầu ra bên dưới:

user@host# ssh-keyscan 10.xx.xx.xx | grep ed25519 | grep -v "#"
  # 10.xx.xx.xx:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
  # 10.xx.xx.xx:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
  # 10.xx.xx.xx:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
  # 10.xx.xx.xx:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
  # 10.xx.xx.xx:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
  10.xx.xx.xx ssh-ed25519 <khóa máy chủ>

Tôi cần nó để chỉ in dòng ed25519. Tôi cũng đã thử dùng AWK để lọc nhưng vẫn không nhận được đầu ra mình cần.

Bạn có biết cách chỉ lọc dòng ed25519 không?

lá cờ hr
Các dòng `#` có khả năng chuyển sang thiết bị xuất chuẩn chứ không phải thiết bị xuất chuẩn - hãy thử `ssh-keyscan 10.xx.xx.xx 2>&1 | grep ed25519 | grep -v "#"`
Tim R avatar
lá cờ kn
Bạn đã hoàn toàn chính xác về điều đó. Nếu bạn muốn đặt nó làm câu trả lời để tôi có thể cung cấp cho bạn tín dụng cho nó như một giải pháp. Cảm ơn bạn rất nhiều. Không cần grep thứ hai với điều đó vì 2>&1 đã sửa nó
lá cờ hr
Xong rồi - Tôi cũng đã đưa ra một số đề xuất để loại bỏ (các) grep
Điểm:3
lá cờ hr

Các dòng bắt đầu bằng # sẽ chuyển sang thiết bị xuất chuẩn (lỗi tiêu chuẩn) thay vì đầu ra tiêu chuẩn (thiết bị xuất chuẩn). để có được grep -v để loại trừ chúng, bạn cần chuyển hướng thiết bị xuất chuẩn sang thiết bị xuất chuẩn:

ssh-keyscan 10.xx.xx.xx 2>&1 | grep ed25519 | grep -v "#"

Lưu ý rằng bạn có thể loại bỏ grep đầu tiên bằng cách thêm bộ lọc loại vào chính lệnh ssh-keyscan:

ssh-keyscan -t ed25519 10.xx.xx.xx 2>&1 | grep -v "#"

Nếu muốn, bạn có thể chuyển hướng tất cả lỗi thành null thay vì lọc nó:

ssh-keyscan -t ed25519 10.xx.xx.xx 2>/dev/null
Điểm:0
lá cờ us

Chà, nếu bạn biết đầu ra sẽ bao gồm "ssh-ed25519", bạn nên tìm hiểu về điều đó.

Hoặc đường ống đến đó.

Hoặc nếu bạn biết nó sẽ là dòng cuối cùng của đầu ra, hãy chuyển sang lệnh "đuôi" thích hợp.

Bạn đã xem lệnh sed chưa?

lá cờ in
Chào mừng bạn đến với AskUbfox. Khi đề xuất một người làm A hoặc B để khắc phục sự cố, thông thường sẽ có lợi nếu đưa ra các ví dụ về giải pháp. May mắn thay, những điều này đã tồn tại với câu trả lời được chấp nhận

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