Tôi có một tập lệnh tạo hai dòng dưới dạng đầu ra mỗi lần. Tôi thực sự chỉ quan tâm đến dòng thứ hai. Hơn nữa, tôi chỉ quan tâm đến văn bản xuất hiện giữa một cặp # trên dòng thứ hai. Ngoài ra, giữa các băm, một dấu phân cách khác được sử dụng:^A. Nó sẽ là tuyệt vời nếu tôi cũng có thể phá vỡ từng phần của văn bản đó là^A-phân (Lưu ý rằng^A là SOH ký tự đặc biệt và có thể được đánh máy bằng cách sử dụng tổ hợp phím Ctrl-A)Nhận dòng đầu ra văn bản thứ n
Trả lời
your.program | tail +2 | cut -d# -f2
nên giúp bạn có được 2/3 đường.
bash:
read
read line
result="${line#*#}"
result="${result%#*}"
IFS=$'\001' read result -a <<< "$result"
$result
hiện nay là một mảng chứa các yếu tố bạn quan tâm Chỉ cần ống đầu ra của kịch bản để thế này..
output | sed -n '1p' #prints the 1st line of output
output | sed -n '1,3p' #prints the 1st, 2nd and 3rd line of output
Câu trả lời của bạn tốt hơn. Không chắc chắn lý do tại sao một số khác được chấp nhận. Rất bối rối. – Fuser97381
Đây chính xác là những gì tôi đang tìm kiếm. Cảm ơn! @ n-1-1 Bạn có biết nếu có thể chỉ định các dòng 1,3,5 thay vì 1-5 bằng sed? Tôi không thể tìm thấy bất cứ điều gì bản thân mình. – Olshansk
Tôi có thể sử dụng awk cho điều đó.
your_script | awk -F# 'NR == 2 && NF == 3 {
num_tokens=split($2, tokens, "^A")
for (i = 1; i <= num_tokens; ++i) {
print tokens[i]
}
}'
này nói
1. Set the field separator to #
2. On lines that are the 2nd line, and also have 3 fields (text#text#text)
3. Split the middle (2nd) field using "^A" as the delimiter into the array named tokens
4. Print each token
Rõ ràng điều này làm cho rất nhiều giả định. Bạn có thể cần phải tinh chỉnh nó nếu, ví dụ, # hoặc^A có thể xuất hiện hợp pháp trong dữ liệu, mà không bị phân cách. Nhưng một cái gì đó như thế sẽ giúp bạn bắt đầu. Bạn có thể cần phải sử dụng nawk hoặc gawk hoặc một cái gì đó, tôi không hoàn toàn chắc chắn nếu đồng bằng awk có thể xử lý tách trên một nhân vật điều khiển.
đây là một giải pháp awk thể
awk -F"#" 'NR==2{
for(i=2;i<=NF;i+=2){
split($i,a,"\001") # split on SOH
for(o in a) print o # print the splitted hash
}
}' file
Cải thiện câu trả lời Grumdrig của:
your.program | head -n 2| tail -1 | cut -d# -f2
- 1. Lấy dòng thứ n của tệp văn bản trong C++
- 2. UITextView: Văn bản bắt đầu từ dòng văn bản thứ 2
- 3. Văn bản SQL trước đó khớp thứ N?
- 4. Bảng tổng hợp - sao chép (hình ảnh + văn bản) tạo ra ngắt dòng bí ẩn \ n
- 5. Android TextView và nhận dòng văn bản
- 6. Truyền văn bản đầu ra cho hành động dài hạn?
- 7. Bắt đầu một dòng mới trong hộp văn bản wpf
- 8. Nhận mọi mục thứ n trong mảng
- 9. Vim: Văn bản được chọn ống thành cmd vỏ và nhận đầu ra trên thông tin vim/dòng lệnh
- 10. Xuất đầu ra powershell thành tệp văn bản
- 11. Sử dụng lệnh Grep Linux - cần đầu ra cho tệp văn bản, đầu ra sạch hơn
- 12. Thay dòng đầu tiên của tệp văn bản trong Java
- 13. Thêm dấu đầu dòng văn bản vào biểu mẫu C#
- 14. dòng loại trong tập tin văn bản, nhưng chỉ sử dụng các nhân vật N đầu tiên
- 15. Nhận văn bản phần tử thứ hai với XPath?
- 16. chuyển hướng đầu ra cho file văn bản C#
- 17. Xóa Dòng Tệp Văn bản Hàng đầu bằng PowerShell
- 18. Thêm một dòng vào đầu tệp văn bản
- 19. sắp xếp đầu ra của dòng
- 20. chọn n hồ sơ ra khỏi hồ sơ thứ n trong LINQ
- 21. Nối các tệp văn bản với dòng lệnh của Windows, thả các dòng đầu tiên
- 22. nhận được dòng đầu tiên của văn bản trong một jquery yếu tố
- 23. Android: cách đặt dấu đầu dòng, ngắt dòng vào văn bản trong chế độ xem văn bản
- 24. Cách phân tích cú pháp đầu vào của người dùng từ dòng văn bản theo dòng
- 25. Đầu ra không có dòng mới
- 26. in mọi dòng thứ n vào hàng bằng gawk
- 27. lấy n dòng cuối cùng từ đầu ra giao diện điều khiển
- 28. Nhiều dòng văn bản vào một bản đồ đơn
- 29. Trong khi vòng lặp, cách đọc từ dòng thứ hai của tệp văn bản
- 30. Cách ngắt dòng văn bản thành xác nhận Javascript()?
là cắt các tiện ích tốt nhất để sử dụng trên một số tiền undeterminate của giá trị được giới hạn bởi^A? – syker
Tôi không chắc chắn. Tôi thực sự không hiểu mục tiêu của bạn là gì về^A. Để biến chúng thành thứ gì đó khác? Ngắt dòng? – Grumdrig