新聞中心
Linux中有很多強(qiáng)大的命令,其中awk命令是處理文本非常實(shí)用的工具。awk命令可以用于數(shù)據(jù)處理、篩選、格式化和分析。在使用awk命令時(shí),我們可以結(jié)合其他命令使用,以實(shí)現(xiàn)更加高效的文本處理。

十余年的湟中網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整湟中建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“湟中網(wǎng)站設(shè)計(jì)”,“湟中網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
在awk命令中,最常見的是對行進(jìn)行處理,包括刪除、添加、修改等操作。另外,awk還具有將兩行或多行文本合并為一行的功能。這里我們介紹一下行合并技巧,使用awk命令將多行文本合并為一行。
使用awk命令合并行
在awk命令中,使用print命令可以輸出選定的文本。但是,如果輸出的文本中有多行,則會(huì)輸出多行。此時(shí),我們就需要使用awk的行合并技巧。
awk的行合并技巧是通過設(shè)置變量ORS(輸出記錄分隔符)來實(shí)現(xiàn)的。變量ORS的作用是指定輸出時(shí)記錄之間的分隔符。默認(rèn)情況下,ORS為換行符,即每個(gè)記錄輸出到屏幕上時(shí),都以一個(gè)換行符結(jié)尾。
如果我們需要將多行文本合并為一行,則可以使用指定ORS為“”(空字符串)的方式來實(shí)現(xiàn)。這樣,awk就會(huì)將多個(gè)記錄輸出到同一行,并使用空字符串作為記錄之間的分隔符。下面是一個(gè)示例:
$ cat file.txt
line1
line2
line3
line4
$ awk ‘BEGIN{ORS=””;}{print $0;} END{print “\n”;}’ file.txt
line1line2line3line4
在上面的示例中,我們使用awk命令將file.txt中的多行文本合并為了一行。將ORS設(shè)置為空字符串后,awk輸出每一行時(shí)都不會(huì)添加換行符,這樣實(shí)現(xiàn)了行合并的目的。END命令是一個(gè)特殊命令,用于在處理完所有記錄后執(zhí)行一次。在上面的命令中,我們使用了 END{print “\n”;} 來輸出一個(gè)換行符,這樣可以保證最后一行的輸出正常。
在實(shí)際工作中,我們可能需要從一個(gè)文件中提取出某些特定的信息,然后將這些信息合并為一行,以方便后續(xù)處理。使用awk的行合并技巧可以有效地實(shí)現(xiàn)該功能。下面我們來看一個(gè)應(yīng)用實(shí)例:
$ cat data.txt
Name: John
Age: 30
Sex: Male
Job: Engineer
$ awk ‘BEGIN{ORS=””;}{if(NR%4 !=0){print $0,” “;}else{print $0,”\n”;}}’ data.txt
Name: John Age: 30 Sex: Male Job: Engineer
在上面的示例中,我們使用了Nginx的access log作為數(shù)據(jù)源。我們使用awk命令將access log文件中的特定信息提取出來,并將提取出的信息合并為一行。具體來說,我們將數(shù)據(jù)源按格式進(jìn)行分割,提取出Name、Age、Sex和Job信息,并在每個(gè)字段之間添加空格。我們使用行合并技巧將這四個(gè)字段合并為一行,并輸出到屏幕上。
在Linux中,awk是處理文本非常實(shí)用的工具,它可以用于數(shù)據(jù)處理、篩選、格式化和分析。awk命令中的行合并技巧可以將多行文本合并為一行,提高文本處理的效率。使用awk命令時(shí),需注意設(shè)置輸出記錄分隔符變量ORS的值,以實(shí)現(xiàn)行合并的功能。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220如何在Linux中使用awk命令
awk:用于一行中分成數(shù)個(gè)“字段”來處理。適合處理
小型數(shù)據(jù)。
運(yùn)行模式:awk
‘條件類型1{動(dòng)作1}
條件類型2{動(dòng)作2}
…’
filename
#
last
|
awk
$1
“\t”
$3}’
大于
=
大于或等于
gawk
3、awk ‘/abc/’ file.txt 顯示文件中包含abc行。類似grep abc a.txt
4、awk ‘{print NR,NF,$1,$NF,}’ file.txt按空格分隔列,顯示當(dāng)前記錄號、域數(shù)和每一行的之一列和最后一列。
-F參數(shù)可以設(shè)置分割參數(shù),例如按:分割
awk -F: ‘{print $1}’ /etc/passwd
或者cat file|awk -F “|” ‘{print $1}’
5、awk編程語言
cat v.txt|awk ‘{print length($1)}’
6、awk中使用NR和FNR,一般在awk處理多個(gè)文件時(shí),NR==FNR才有意義
NF 當(dāng)前記錄中的字段數(shù)。
NR 當(dāng)前記錄數(shù)。
FNR同NR,但相對于當(dāng)前文件。
awk ‘{print NR,FNR}’ test.txt test2.txt
awk ‘{if(NR==FNR){a=$1;}else{print $1,a}}’ b.txt a.txt
7、打印奇數(shù)行與偶數(shù)行
awk ‘NR%2’ test.txt
awk ‘!(NR%2)’ test.txt
8、殺死tomcat的stop.sh腳本
#!/bin/sh
ps -ef| grep tomcat |grep -v grep | awk ‘{print $2}’ |xargs kill -9
9、打印前7列
cat a.txt|awk ‘{NF=7}1’ >> b.txt
tail -f access.log|awk ‘NF=7′ OFS=’\t’ >> b.txt
linux中awk文件處理問題
去CU問吧,那里高手多
關(guān)于linux awk 行合并的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
本文名稱:Linuxawk命令——行合并技巧(linuxawk行合并)
分享鏈接:http://www.dlmjj.cn/article/dhddois.html


咨詢
建站咨詢
