Có điều kiện VÀ trong awk với các biến môi trường


1

Tôi tìm thấy lệnh này. Nếu một dòng có từ quan tâm, lệnh sẽ xuất ra toàn bộ dòng:

temp="sample"
awk -F " " -v var="$temp" '$1 == var' /root/smaple.txt

smaple.txt chứa đựng:

sample demo 123 456
sample2 demo2 567 345
sample3 demo4 453 456

Bây giờ tôi muốn kiểm tra hai giá trị tức là Nếu hai giá trị đó trong một dòng, lệnh sẽ xuất ra dòng:

temp1="sample"
temp2="123"
awk -F " " -v var="$temp1" var2="$temp2" '$1 == temp1 && $3 == temp2' /root/smaple.txt

Đầu ra dự kiến ​​cho lệnh của tôi:

sample demo 123 456

Nhưng nó không hoạt động.

Câu trả lời:


1

Bạn nhầm lẫn tên của các biến:

temp1="sample"
temp2="123"
awk -v temp1="$temp1" -v temp2="$temp2" '$1==temp1 && $3==temp2' file

Ngoài ra, -vtham số phải được sử dụng nhiều lần, khi bạn cần nhiều biến.


0

Hãy thử điều này một lần

awk -F " " -v 'var="$temp1" var2="$temp2"' '$1 == var && $3 == var2' /root/smaple.txt

bạn đã so sánh với giá trị


Cảm ơn cho phát lại, tôi cũng đã cố gắng với điều đó. Nó không hiển thị bất kỳ đầu ra hoặc lỗi
Veerendra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.