Chào mừng bạn đến blog Kế Toán.VN Trang Chủ

Table of Content

Hàm awk trong linux ✅ Đầy đủ

Thủ Thuật Hướng dẫn Hàm awk trong linux Chi Tiết

Lã Tuấn Dũng đang tìm kiếm từ khóa Hàm awk trong linux được Cập Nhật vào lúc : 2022-12-22 04:10:15 . Với phương châm chia sẻ Bí kíp về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read Post vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha.

Trong Linux,

ai | awk 'in $ 1, $ 4'4 là một động lực thao tác văn bản dòng lệnh, cũng như một ngôn từ ngữ cảnh mạnh mẽ và tự tin. Đây là phần ra mắt về một số trong những tính năng thú vị hơn của nó. Nội dung chính Show
    Làm thế nào awk mang tên của mìnhQuy tắc, quy mô và hành độngThêm dấu phân tách trường đầu raQuy tắc BEGIN và ENDDấu phân tách trường đầu vàoThêm những mẫuCác hiệu suất cao tích hợpTập lệnh awkawk không nghĩa là rất khó xử

tóm lại

    Làm thế nào awk mang tên của tớ

    le

    ai | awk 'in $ 1, $ 4'4 Ủy ban được đặt tên theo tên viết tắt của ba người đã viết phiên bản gốc vào năm 1977: Alfred Aho, Peter Weinberger và Brian Kernighan. Ba người đàn ông này thuộc về đội Unix lịch sử thuở nào của Phòng thí nghiệm Bell AT&T. Với sự đóng góp của nhiều người khác Tính từ lúc đó, ai | awk 'in $ 1, $ 4'4 tiếp tục phát triển.

    Nó là một ngôn từ ngữ cảnh hoàn hảo nhất, cũng như một bộ công cụ thao tác văn bản hoàn hảo nhất cho dòng lệnh. Nếu nội dung bài viết này kích thích sự thèm ăn của bạn, bạn hoàn toàn có thể xem tất cả những cụ ông cụ bà thể tại

    ai | awk 'in $ 1, $ 4'4 và hiệu suất cao của nó.

    Quy tắc, quy mô và hành vi

    ai | awk 'in $ 1, $ 4'4 hoạt động và sinh hoạt giải trí trên những chương trình có chứa những quy tắc được tạo thành từ những quy mô và hành vi. Hành động được thực hiện trên văn bản phù phù phù hợp với mẫu. Các mẫu được xung quanh bởi dấu ngoặc nhọn (ai | awk 'in $ 1, $ 4'9). Cùng với nhau, một quy mô và một hành vi tạo thành một quy tắc. Tất cả những ai | awk 'in $ 1, $ 4'4 chương trình được đặt trong dấu nháy đơn (con mèo dennis_ritchie.txt1).

    Chúng ta hãy xem xét loại đơn giản nhất của

    ai | awk 'in $ 1, $ 4'4 chương trình. Nó không còn mẫu, vì vậy nó khớp với mọi dòng văn bản được nhập vào nó. Điều này nghĩa là hành vi được thực hiện trên mỗi hàng. Chúng tôi sẽ sử dụng nó trên đầu ra của con mèo dennis_ritchie.txt3 đặt hàng.

    Đây là đầu ra tiêu chuẩn của

    con mèo dennis_ritchie.txt3:ai

    Chúng tôi hoàn toàn có thể không cần tất cả thông tin này, mà chỉ muốn xem tên trên những tài khoản. Chúng tôi hoàn toàn có thể định hướng đầu ra của

    con mèo dennis_ritchie.txt3 trong ai | awk 'in $ 1, $ 4'4, vậy thì nói đi ai | awk 'in $ 1, $ 4'4 để chỉ in trường đầu tiên.

    Theo mặc định,

    ai | awk 'in $ 1, $ 4'4 coi một trường là một chuỗi ký tự được xung quanh bởi dấu cách, đầu dòng hoặc cuối dòng. Các trường được xác định bằng ký hiệu đô la (con mèo dennis_ritchie.txt9) và một số trong những. Vì thế, awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt0 đại diện cho trường đầu tiên, mà chúng tôi sẽ sử dụng với awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt1 hành vi để in trường đầu tiên.

    Chúng tôi gõ như sau:

    ai | awk 'print $ 1'

    ai | awk 'in $ 1, $ 4'4 in trường đầu tiên và xóa phần còn sót lại của dòng.

    Chúng tôi hoàn toàn có thể in bao nhiêu trường tùy thích. Nếu tất cả chúng ta thêm dấu phẩy làm dấu phân cách,

    ai | awk 'in $ 1, $ 4'4 in một khoảng chừng trắng giữa mỗi trường.

    Chúng tôi nhập như sau để in thời gian người đó đã đăng nhập (trường bốn):

    ai | awk 'in $ 1, $ 4'

    Có một vài số nhận dạng trường đặc biệt. Chúng đại diện cho toàn bộ dòng văn bản và trường ở đầu cuối trong dòng văn bản:

      0 $: Đại diện cho toàn bộ dòng văn bản.1 $: Đại diện cho trường đầu tiên.2 $: Đại diện cho trường thứ hai.7 $: Đại diện cho trường thứ bảy.45 $: Đại diện cho trường thứ 45.$ Nf.: Có nghĩa là "số trường" và đại diện cho trường ở đầu cuối.

    Chúng tôi sẽ nhập nội dung sau để hiển thị một tệp văn bản nhỏ chứa một trích dẫn ngắn được gán cho Dennis Ritchie:

    con mèo dennis_ritchie.txt

    chúng tôi muốn

    ai | awk 'in $ 1, $ 4'4 để in trường đầu tiên, thứ hai và trường ở đầu cuối của câu trích dẫn. Lưu ý rằng tuy nhiên nó được bao bọc trong hiên chạy cửa số đầu cuối, nhưng nó chỉ là một dòng văn bản.

    Chúng tôi gõ lệnh sau:

    awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt

    Chúng tôi không biết điều này "đơn giản". là trường thứ 18 trong dòng văn bản và chúng tôi không quan tâm. Những gì chúng tôi biết là đây là trường ở đầu cuối và chúng tôi hoàn toàn có thể sử dụng

    awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt5 để nhận được giá trị của nó. Dấu chấm chỉ đơn giản được xem như một ký tự khác trong phần thân của trường.

    Thêm dấu phân tách trường đầu ra

    Bạn cũng hoàn toàn có thể nói rằng

    ai | awk 'in $ 1, $ 4'4 để in một ký tự rõ ràng Một trong những trường thay vì ký tự khoảng chừng trắng mặc định. Đầu ra mặc định của awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt7 thứ tự có một chút ít đặc biệt vì thời gian bị hạ xuống ở giữa. Tuy nhiên, tất cả chúng ta hoàn toàn có thể gõ như sau và sử dụng ai | awk 'in $ 1, $ 4'4 để trích xuất những trường chúng tôi muốn:ngàyngày tháng | awk 'print $ 2, $ 3, $ 6'

    Chúng tôi sẽ sử dụng

    awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt9 (dấu phân tách trường đầu ra) để đặt dấu phân cách thời điểm giữa tháng, ngày và năm. Lưu ý rằng phía dưới chúng tôi đặt lệnh trong dấu ngoặc kép (con mèo dennis_ritchie.txt1), không phải dấu ngoặc nhọn (ai | awk 'in $ 1, $ 4'9):ngày tháng | awk 'OFS = "https://cunghoidap.com/" print $ 2, $ 3, $ 6'ngày tháng | awk 'OFS = "-" print $ 2, $ 3, $ 6'

    Quy tắc BEGIN và END

    Một

    ngày2 được thực thi một lần trước khi khởi đầu xử lý văn bản. Trên thực tế, nó được thực thi trước khi ai | awk 'in $ 1, $ 4'4 thậm chí đọc bất kỳ văn bản nào. Một ngày4 quy tắc được thực thi sau khi tất cả quá trình xử lý hoàn tất. Bạn hoàn toàn có thể có một vài ngày2 et ngày4 và chúng sẽ đuổi theo thứ tự.

    Ví dụ của chúng tôi về một

    ngày2 quy tắc, chúng tôi sẽ in toàn bộ trích dẫn từ ngày8 tệp chúng tôi đã sử dụng trước đây với tiêu đề ở trên.

    Để thực hiện việc này, tất cả chúng ta gõ lệnh sau:

    awk 'BEGIN print "Dennis Ritchie" print $ 0' dennis_ritchie.txt

    Lưu ý

    ngày2 quy tắc có một tập hợp những hành vi riêng của nó được bao bọc trong một tập hợp những dấu ngoặc nhọn riêng của nó (ai | awk 'in $ 1, $ 4'9).

    Chúng ta hoàn toàn có thể sử dụng kỹ thuật tương tự với lệnh mà tất cả chúng ta đã sử dụng trước đó để điều hướng đầu ra của

    con mèo dennis_ritchie.txt3 trong ai | awk 'in $ 1, $ 4'4. Để làm điều này, chúng tôi nhập như sau:ai | awk 'print $ 1'0

    Dấu phân tách trường đầu vào

    Nếu bạn muốn

    ai | awk 'in $ 1, $ 4'4 để thao tác với văn bản không sử dụng dấu phương pháp để phân tách những trường, bạn phải cho nó biết ký tự nào mà văn bản sử dụng làm dấu phân cách trường. Ví dụ, ngày tháng | awk 'print $ 2, $ 3, $ 6'4 tệp sử dụng dấu hai chấm (ngày tháng | awk 'print $ 2, $ 3, $ 6'5) để tách những trường.

    Chúng tôi sẽ sử dụng tệp này và

    ngày tháng | awk 'print $ 2, $ 3, $ 6'6 (chuỗi phân tách) tùy chọn để nói ai | awk 'in $ 1, $ 4'4 để sử dụng dấu hai chấm (ngày tháng | awk 'print $ 2, $ 3, $ 6'5) như một dấu phân cách. Chúng tôi gõ như sau để nói ai | awk 'in $ 1, $ 4'4 để in tên của tài khoản người tiêu dùng và thư mục thành viên:ai | awk 'print $ 1'1

    Đầu ra chứa tên của tài khoản người tiêu dùng (hoặc tên của ứng dụng hoặc daemon) và thư mục chính (hoặc vị trí của ứng dụng).

    Thêm bộ sưu tập

    Nếu tất cả những gì chúng tôi quan tâm là tài khoản người tiêu dùng thông thường, chúng tôi hoàn toàn có thể gồm có một mẫu với hành vi in của chúng tôi để lọc ra tất cả những mục nhập khác. Vì số ID người tiêu dùng bằng hoặc to hơn 1, chúng tôi hoàn toàn có thể nhờ vào bộ lọc của tớ nhờ vào thông tin này.

    Chúng tôi nhập nội dung sau để thực hiện hành vi in của chúng tôi chỉ khi trường thứ ba (

    ngày tháng | awk 'OFS = "https://cunghoidap.com/" print $ 2, $ 3, $ 6'0) chứa giá trị từ 1 trở lên:ai | awk 'print $ 1'2

    = 1000 Lệnh print $ 1, $ 6 '/ etc / passwd "trong hiên chạy cửa số dòng lệnh". width = "646" height = "147" src = "https://cunghoidap.com/ pagespeed_static / 1.JiBnMqyl6S.gif" onload = "pagespeed.lazyLoadImages.loadIfVosystemAndMaybeBeacon (this);" onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVosystemAndMaybeBeacon (this);" />

    Mô hình phải ngay trước hành vi mà nó được link.

    Chúng ta hoàn toàn có thể sử dụng

    ngày2 quy tắc để đặt tiêu đề cho báo cáo nhỏ của chúng tôi. Chúng tôi gõ như sau, sử dụng (ngày tháng | awk 'OFS = "https://cunghoidap.com/" print $ 2, $ 3, $ 6'2) ký hiệu để chèn một ký tự dòng mới vào chuỗi tiêu đề:ai | awk 'print $ 1'3

    = 1000 Lệnh print $ 1, $ 6 '/ etc / passwd "trong hiên chạy cửa số dòng lệnh". width = "646" height = "212" src = "https://cunghoidap.com/ pagespeed_static / 1.JiBnMqyl6S.gif" onload = "pagespeed.lazyLoadImages.loadIfVosystemAndMaybeBeacon (this);" onerror = "this.onerror = null; pagespeed.lazyLoadImages.loadIfVosystemAndMaybeBeacon (this);" />

    Các mẫu là biểu thức chính quy theo đúng nghĩa của chúng và chúng là một trong những vinh quang của

    ai | awk 'in $ 1, $ 4'4.

    Giả sử tất cả chúng ta muốn xem những mã định danh duy nhất (UUID) của những khối mạng lưới hệ thống tệp được link. Nếu tất cả chúng ta tìm kiếm thông qua

    ngày tháng | awk 'OFS = "https://cunghoidap.com/" print $ 2, $ 3, $ 6'4 tệp cho những lần xuất hiện của chuỗi "UUID", nó sẽ trả lại thông tin đó cho chúng tôi.

    Chúng tôi sử dụng mẫu tìm kiếm "/ UUID /" trong lệnh của tớ:

    ai | awk 'print $ 1'4

    Nó tìm tất cả mỗi lần xuất hiện của "UUID" và in ra những dòng đó. Trên thực tế, chúng tôi sẽ đạt được kết quả tương tự nếu không còn

    awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt1 vì hành vi mặc định sẽ in toàn bộ dòng văn bản. Tuy nhiên, để rõ ràng, nó thường giúp rõ ràng. Khi duyệt qua tập lệnh hoặc tệp lịch sử của tớ, bạn sẽ rất vui vì đã để lại manh mối cho chính mình.

    Dòng đầu tiên được tìm thấy là loại nhận xét và tuy nhiên chuỗi "UUID" ở giữa,

    ai | awk 'in $ 1, $ 4'4 vẫn được tìm thấy. Chúng tôi hoàn toàn có thể sửa đổi biểu thức chính quy và nói ai | awk 'in $ 1, $ 4'4 chỉ xử lý những dòng khởi đầu bằng "UUID". Để thực hiện việc này, chúng tôi nhập dòng sau gồm có mã thông báo đầu dòng (ngày tháng | awk 'OFS = "https://cunghoidap.com/" print $ 2, $ 3, $ 6'8):ai | awk 'print $ 1'5

    Thế tốt hơn rồi! Bây giờ tất cả chúng ta chỉ xem hướng dẫn lắp ráp chính hãng. Để tinh chỉnh thêm đầu ra, chúng tôi nhập nội dung sau và số lượng giới hạn hiển thị ở trường đầu tiên:

    ai | awk 'print $ 1'6

    Nếu chúng tôi có nhiều khối mạng lưới hệ thống tệp được gắn trên máy này, chúng tôi sẽ nhận được một bảng ngăn nắp về những UUID của chúng.

    Các hiệu suất cao tích hợp

    ai | awk 'in $ 1, $ 4'4 có nhiều hiệu suất cao mà bạn hoàn toàn có thể gọi và sử dụng trong những chương trình của riêng mình, từ dòng lệnh và trong những tập lệnh. Nếu bạn đào, bạn sẽ thấy nó rất thành công.

    Để chứng tỏ kỹ thuật chung để gọi một hàm, tất cả chúng ta hãy xem xét một số trong những kỹ thuật số. Ví dụ, sau đây in ra căn bậc hai của 625:

    ai | awk 'print $ 1'7

    Lệnh này hiển thị arctang của 0 (không) và -1 (xảy ra là hằng số toán học, pi):

    ai | awk 'print $ 1'8

    Trong lệnh sau, chúng tôi sửa đổi kết quả của lệnh

    ngày tháng | awk 'OFS = "-" print $ 2, $ 3, $ 6'0 hiệu suất cao trước khi in nó:ai | awk 'print $ 1'9

    Các hàm hoàn toàn có thể đồng ý những biểu thức dưới dạng tham số. Ví dụ, đây là một cách phức tạp để yêu cầu căn bậc hai của 25:

    ai | awk 'in $ 1, $ 4'0

    Tập lệnh awk

    Nếu dòng lệnh của bạn trở nên phức tạp hoặc bạn phát triển một quy trình mà bạn biết rằng bạn sẽ muốn sử dụng lại, bạn hoàn toàn có thể chuyển

    ai | awk 'in $ 1, $ 4'4 lệnh trong một tập lệnh.

    Trong tập lệnh mẫu của chúng tôi, chúng tôi sẽ thực hiện tất cả những điều sau:

      Cho trình bao biết tệp thực thi nào được sử dụng để chạy tập lệnh.Chuẩn bị ai | awk 'in $ 1, $ 4'4 sử dụng ngày tháng | awk 'OFS = "-" print $ 2, $ 3, $ 6'3 biến phân tách trường để đọc văn bản đầu vào với những trường được phân tách bằng dấu hai chấm (ngày tháng | awk 'print $ 2, $ 3, $ 6'5).Sử dụng awk 'print $ 1, $ 2, $ NF' dennis_ritchie.txt9 dấu phân tách trường đầu ra để nói ai | awk 'in $ 1, $ 4'4 để sử dụng dấu hai chấm (ngày tháng | awk 'print $ 2, $ 3, $ 6'5) để tách những trường khỏi đầu ra.Đặt bộ đếm thành 0 (không).Đặt trường thứ hai trong mỗi dòng văn bản thành một giá trị trống (nó luôn là "x", vì vậy tất cả chúng ta không cần nhìn thấy nó).In dòng có trường sửa đổi thứ hai.Tăng bộ đếm.In giá trị bộ đếm.

    Kịch bản của chúng tôi được hiển thị phía dưới.

    le

    ngày2 quy tắc thực hiện tiến trình sẵn sàng sẵn sàng, trong khi ngày4 Thước hiển thị giá trị của cục đếm. Quy tắc giữa (không mang tên hoặc mẫu phù phù phù hợp với từng hàng) thay đổi trường thứ hai, in hàng và tăng bộ đếm.

    Dòng đầu tiên của tập lệnh cho shell biết tệp thực thi nào được sử dụng (

    ai | awk 'in $ 1, $ 4'4, trong ví dụ của chúng tôi) để chạy tập lệnh. Nó cũng vượt qua awk 'BEGIN print "Dennis Ritchie" print $ 0' dennis_ritchie.txt1 tùy chọn (tên tệp) cho ai | awk 'in $ 1, $ 4'4, thông báo cho nó rằng văn bản mà nó sẽ xử lý sẽ đến từ một tệp. Chúng tôi sẽ chuyển tên tệp cho tập lệnh khi chúng tôi chạy nó.

    Chúng tôi đã gồm có tập lệnh phía dưới dưới dạng văn bản để bạn hoàn toàn có thể cắt và dán:

    ai | awk 'in $ 1, $ 4'1

    Lưu nó vào một tệp mang tên

    awk 'BEGIN print "Dennis Ritchie" print $ 0' dennis_ritchie.txt3. Để làm cho tập lệnh hoàn toàn có thể thực thi được, tất cả chúng ta gõ như sau bằng phương pháp sử dụng awk 'BEGIN print "Dennis Ritchie" print $ 0' dennis_ritchie.txt4:ai | awk 'in $ 1, $ 4'2

    Bây giờ chúng tôi sẽ chạy nó và sử dụng

    ngày tháng | awk 'print $ 2, $ 3, $ 6'4 tập tin sang tập lệnh. Đây là thư mục ai | awk 'in $ 1, $ 4'4 sẽ xử lý cho chúng tôi, sử dụng những quy tắc của tập lệnh:ai | awk 'in $ 1, $ 4'3

    Tệp được xử lý và từng dòng được hiển thị, như hình dưới đây.

    Các mục nhập "x" trong trường thứ hai đã bị xóa, nhưng lưu ý rằng dấu phân cách trường vẫn còn. Các dòng được đếm và tổng số được đưa ra ở cuối đầu ra.

    awk không nghĩa là rất khó xử

    ai | awk 'in $ 1, $ 4'4 không đại diện cho việc khó xử; nó thể hiện sự sang trọng. Anh ta đã được mô tả như một bộ lọc xử lý và người viết báo cáo. Cụ thể, nó là cả hai, hay đúng hơn là một công cụ mà bạn hoàn toàn có thể sử dụng cho tất cả hai tác vụ này. Trong một vài dòng, ai | awk 'in $ 1, $ 4'4 đạt được những gì yêu cầu mã hóa rộng rãi bằng ngôn từ truyền thống.

    Sức mạnh này được khai thác bởi khái niệm đơn giản về những quy tắc chứa những quy mô, chọn văn bản sẽ được xử lý và những hành vi xác định quá trình xử lý.

    Tải thêm tài liệu liên quan đến nội dung bài viết Hàm awk trong linux programming

    Video Hàm awk trong linux ?

    Bạn vừa đọc Post Với Một số hướng dẫn một cách rõ ràng hơn về Review Hàm awk trong linux tiên tiến nhất

    Chia Sẻ Link Download Hàm awk trong linux miễn phí

    Heros đang tìm một số trong những Chia Sẻ Link Down Hàm awk trong linux miễn phí.

    Thảo Luận thắc mắc về Hàm awk trong linux

    Nếu sau khi đọc nội dung bài viết Hàm awk trong linux vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Tác giả lý giải và hướng dẫn lại nha #Hàm #awk #trong #linux - 2022-12-22 04:10:15

    Post a Comment