掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在Linux中,經(jīng)常需要處理文本數(shù)據(jù),其中,將一行字拆分為多列是一個(gè)常見(jiàn)的問(wèn)題。例如,你有一個(gè)csv文件,其中包含姓名、性別、年齡等字段,這些字段之間使用逗號(hào)分隔。但是,你卻需要將這些字段分列,以便更好地進(jìn)行分析。在正則表達(dá)式和awk等工具的幫助下,將一行字分列變得非常簡(jiǎn)單。

景德鎮(zhèn)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
1.使用awk命令
awk是一個(gè)非常強(qiáng)大的文本處理工具,它可以將輸入的文本按照指定的字段分割。例如,假設(shè)你有以下一行文本:
John,Doe,23,Male
想要將其分為四列,你可以使用以下awk命令:
awk -F ‘,’ ‘{print $1, $2, $3, $4}’ file.csv
結(jié)果將會(huì)輸出以下內(nèi)容:
John Doe 23 Male
在這個(gè)命令中,-F選項(xiàng)指定了使用逗號(hào)作為分隔符,$1~$4表示輸出第1列到第4列的內(nèi)容。
2.使用sed命令
sed是另一個(gè)常用的文本處理工具,可以用于替換文本、刪除文本等操作。在這里,我們可以使用sed將逗號(hào)分隔的文本行拆分成多列。例如,假設(shè)你有以下一行文本:
Jane,Doe,25,Female
使用以下sed命令,將文本拆分成四列
sed ‘s/,/ /g’ file.csv
結(jié)果將會(huì)輸出以下內(nèi)容:
Jane Doe 25 Female
在這個(gè)命令中,s命令用于替換文本,其中/,//g表示用空格替換所有逗號(hào)。
3.使用cut命令
cut是一個(gè)常用于分割文件的Linux命令,可以根據(jù)指定的字段分隔符分割文本行。例如,如果你有以下一行文本:
Mike,Johnson,30,Male
你可以使用下面的命令,將其分隔成四個(gè)字段:
cut -d ‘,’ -f1,2,3,4 file.csv
結(jié)果將會(huì)輸出以下內(nèi)容:
Mike,Johnson,30,Male
在這個(gè)命令中,-d選項(xiàng)指定了使用逗號(hào)作為分隔符,-f選項(xiàng)指定了輸出字段的范圍。
以上是三種將一行字拆分成多列的方法。這些方法都使用了不同的工具,例如awk、sed和cut。你可以根據(jù)自己的需要選擇不同的方法,選擇最適合你的文本處理方式。希望這篇文章對(duì)你有所幫助。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220舉個(gè)鏈猛例子吧,把hello這一行寫入test文件的源巧第棚裂橋3行
sed ‘3i\hello’ test > tmp;mv -f tmp test
有人回答了
本篇主題:詳細(xì)學(xué)習(xí)介紹cat和cut命令
cat 是一個(gè)
文本文件****查看
和
連接
工具
語(yǔ)法結(jié)構(gòu):
$ cat
參數(shù)選項(xiàng):
-A, –show-all 等價(jià)于 -vET
-b, –number-nonblank 對(duì)非空輸出行編號(hào)
-e 等價(jià)于 -vE
-E, –show-ends 在每行結(jié)束處顯示 $
-n, –number 對(duì)輸出的所有行編號(hào)
-s, –squeeze-blank 不輸出多行空行
-t 與 -vT 等價(jià)
-T, –show-tabs 將跳 字符顯示為 ^I
-u (被忽略)
-v, –show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外鄭山櫻
–help 顯示此幫助唯兆信息并離開
Cat主要有以下2大功能:
1、一次顯示(查看)整個(gè)文件,cat后面直接接文件名。
$ cat filename
比如以下,查看profile文件, -n參數(shù)是顯示
行
# cat /etc/profile 注:查看/etc/目錄下的profile文件內(nèi)容;
# cat -b /etc/fstab 注:查看/etc/目錄下的profile內(nèi)容,并且對(duì)非空白行進(jìn)行編號(hào),行號(hào)從1開始;
# cat -n /etc/profile 注:對(duì)/etc目錄中的profile的所有的行(包括空白行)進(jìn)行編號(hào)輸出顯示;
# cat -E /etc/profile 注:查看/etc/下的profile內(nèi)容,并且在每行的結(jié)尾處附加
$
符號(hào);
cat 加參數(shù)-n 和nl工具差不多,文件內(nèi)容輸出的同時(shí),都會(huì)在每行前面加上行號(hào);
# cat -n /etc/profile
# nl /etc/profile
cat 可以同時(shí)顯示多個(gè)文件的內(nèi)容,比如我們可以在一個(gè)cat命令上同時(shí)顯示兩個(gè)文件的內(nèi)容;
# cat /etc/fstab /etc/profile
cat 對(duì)于內(nèi)容極大的文件來(lái)說(shuō),可以通過(guò)管道
|
傳送到more 工具,然后一頁(yè)一頁(yè)的查看;
# cat /etc/fstab /etc/profile | more
2、cat 的創(chuàng)建、連接文件功能實(shí)例;
cat 有創(chuàng)建文件的功能,創(chuàng)建文件后,要以EOF或STOP結(jié)束;
# cat > linuxcat.txt > linuxsir.txt name4
注意:
其原理是把三個(gè)文件的內(nèi)容連接起來(lái),然后創(chuàng)建name4文件,并且把幾個(gè)文件的內(nèi)容同時(shí)寫入name4中。
特別值得一提的是,如果您輸入到一個(gè)已經(jīng)存在的name4文件,會(huì)把name4內(nèi)容清空。(****見(jiàn)文末例子****)
實(shí)例:
假設(shè)我們有sir01.txt、sir02.tx和sir03.txt ,并且內(nèi)容如下;# cat sir01.txt
i am testing
# cat sir02.txt
BeiNan Tested
# cat sir03.txt
linuxsir.org testing
我想通過(guò)cat 把sir01.txt、sir02.txt及sir03.txt 三個(gè)文件連接在一起(也就是說(shuō)把這三個(gè)文件的內(nèi)容都接在一起)并輸出到一個(gè)新的文件sir04.txt 中。
#
cat
sir01.txt sir02.txt sir03.txt**> **sir04.txt
# **more **sir04.txt
i am testing
BeiNan Tested
linuxsir.org testing
cat 把一個(gè)或多個(gè)已存在的文件內(nèi)容,追加到一個(gè)已存在的文件中
# cat sir00.txt
linuxsir.org forever
#
cat
sir01.txt sir02.txt sir03.txt**>> **sir00.txt
# cat sir00.txt
linuxsir.org forever
i am testing
BeiNan Tested
linuxsir.org testing
警告:我們要知道****>****意思是創(chuàng)建,****>>****是追加。千萬(wàn)不要弄混了。造成失誤可不是鬧著玩的;
cut是一個(gè)選取命令,就是將一段數(shù)據(jù)經(jīng)過(guò)分析,取出我們想要的。一般來(lái)說(shuō),選取信息通常是針對(duì)“行”來(lái)進(jìn)行分析的,并不是整篇信息分析的。
語(yǔ)法結(jié)構(gòu):
cut 或
cut 或
cut
選項(xiàng)參數(shù):
-b :以
字節(jié)
為單位進(jìn)行分割。這些字節(jié)位置將忽略多字節(jié)字符邊界,除非也指定了 -n 標(biāo)志。
-c :以
字符
為單位進(jìn)行分割。
-d :
自定義分隔符
,默認(rèn)為制表符。
-f :與-d一起使用,指定顯示哪個(gè)區(qū)域。
-n :取消分割多字節(jié)字符。僅和 -b 標(biāo)志一起使用。如果字符的最后一個(gè)字節(jié)落在由 -b 標(biāo)志的 List 參數(shù)指示的
范圍之內(nèi),該字符將被寫出;否則,該字符將被排除。
使用說(shuō)明:
cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標(biāo)準(zhǔn)輸出。
如果不指定 File 參數(shù),cut 命令將讀取標(biāo)準(zhǔn)輸入。必須指定 -b、-c 或 -f 標(biāo)志之一。
上一篇中也說(shuō)到cut的使用。
值得注意的是
‘-‘
表示的是一個(gè)區(qū)間,
‘,’
表示的是單個(gè)字符
例子二:
以
‘:’
為分隔符,截取PATH環(huán)境變量第五個(gè)位置的字符
先來(lái)看看PATH變量存的內(nèi)容是什么
$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/in:/usr/in:/in:/home//bin
截取的結(jié)果:
從上面的例子中可以看出,以’:’為分隔符,第五個(gè)位置是/usr/local/in
linux 將一行字分列的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 將一行字分列,Linux技巧:如何將一行字分列?,Linux 下在不打開文件的情況下,將一行文字插入到某個(gè)文件中的指定行,Linux命令操作之cat與cut的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技公司主營(yíng):網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊(cè)、網(wǎng)頁(yè)、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開發(fā)于一體。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流