Điểm:0

Grep từ cụ thể từ một dòng bằng lệnh grep/awk

lá cờ sd
lee

Tôi đã thử cmd này:

# gắn kết | grep -E '\s/dev/shm\s' | awk -F "(" '{in $NF}'

kỳ vọng:

rw,nosuid,nodev,seclabel

Những gì tôi nhận được này:

rw,nosuid,nodev,seclabel)

và tôi cũng đã thử cái này:

gắn kết | grep -E '\s/dev/shm\s' | awk -F "(" '{in $NF}' | cut -c -24
rw,nosuid,nodev,seclabel

Tôi có thể nhận được từ chính xác nhưng theo mặc định, có bất kỳ từ nào không có ở đó, nó sẽ không hoạt động nên tôi cần xóa ký tự này ) Cuối cùng, có ai biết về điều này? Dạy tôi cách giải bài này.

FedKad avatar
lá cờ cn
Bạn đã thử: `mount | grep -E '\s/dev/shm\s' | awk -F "[()]" '{in $2}'` ?
lá cờ sd
lee
Cảm ơn vi đa trả lơi! Nó hoạt động tốt
Điểm:2
lá cờ cn

Tôi đoán rằng đầu ra của bạn gắn kết | tiếng kêu lệnh là như thế này:

$ gắn kết | grep -E '\s/dev/shm\s'
tmpfs trên /dev/shm gõ tmpfs (rw,nosuid,nodev,inode64)

Vì vậy, những gì bạn muốn (một lần nữa, tôi đoán ở đây) là văn bản giữa các dấu ngoặc đơn trên các dòng chứa /dev/shm. Nếu vậy, hãy thử:

$ gắn kết | grep -oP '\s/dev/shm\s.+\(\K[^)]+'
rw,nosuid,nodev,inode64

Các -o tùy chọn cho biết tiếng kêu để chỉ in phần phù hợp của dòng và -P bật PCRE (Biểu thức chính quy tương thích với Perl) cung cấp cho chúng tôi \K vì "bỏ qua mọi thứ phù hợp cho đến thời điểm này". Vì vậy, biểu thức chính quy sẽ tìm kiếm /dev/shm được bao quanh bởi khoảng trắng, sau đó là nhiều ký tự nhất có thể cho đến khi có dấu ngoặc đơn mở (.+\(). Mọi thứ cho đến đây hiện đã bị bỏ qua vì \K và sau đó chúng tôi chỉ khớp đoạn dài nhất của không-) nhân vật ([^)]+).


Nếu bạn thực sự có nhu cầu sử dụng awk vì một số lý do, không cần tiếng kêu:

$ gắn kết | awk -F'[()]' '/\s\/dev\/shm\s/{print $(NF-1)}'
rw,nosuid,nodev,inode64
lá cờ sd
lee
Cảm ơn rất nhiều! Nó hoạt động tốt.
Điểm:2
lá cờ cn

tìm thấy thường được sử dụng để tìm và hiển thị các chi tiết như tên thiết bị, giá treo hoặc loại hệ thống tệp.

findmnt -n --target /dev/shm --output=options

Tích cực thú cưỡi được tìm thấy trong /proc/gắn kết và có một số cột cố định, giúp dễ dàng phân tích cú pháp:

trong khi đọc -r _ a _ b _; làm
    [[ $a = /dev/shm ]] && echo $b
xong < /proc/mounts
lá cờ sd
lee
Cảm ơn vi đa trả lơi! Nó hoạt động tốt
terdon avatar
lá cờ cn
@lee, Nếu một trong những câu trả lời ở đây giải quyết được vấn đề của bạn, vui lòng dành chút thời gian và [chấp nhận](//askubuntu.com/help/someone-answers) bằng cách nhấp vào dấu kiểm bên trái. Đó là cách tốt nhất để bày tỏ lời cảm ơn của bạn trên các trang Stack Exchange.

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