新聞中心
在Linux中,刪除多列數(shù)據(jù)是很常見的任務(wù),但是對于新手可能會感到有些難度。本文將介紹如何通過幾種方法在Linux中刪除多列數(shù)據(jù)。

方法一:使用cut命令
cut命令是Linux中一個強大的工具,可以將文件中的每一行按照指定的分隔符分割為多個字段,并將指定的字段提取出來輸出到屏幕或者文件中。
例如,下面是一個含有多列數(shù)據(jù)的文件example.txt:
“`
1 2 3
4 5 6
7 8 9
“`
如果想要刪除第2列和第3列的數(shù)據(jù),可以使用以下命令:
“`
$ cut -f1 example.txt
“`
輸出結(jié)果如下:
“`
“`
這個命令告訴Linux只提取每行中的第1個字段,即第1列數(shù)據(jù),而忽略第2和第3列數(shù)據(jù)。
如果想要刪除多列數(shù)據(jù),只需要多次使用cut命令即可。例如,如果想同時刪除第2和第3列數(shù)據(jù),可以使用以下命令:
“`
$ cut -f1 example.txt | paste – – -d’ ‘
“`
輸出結(jié)果如下:
“`
1
4
“`
這個命令首先使用cut命令提取出每行的第1列數(shù)據(jù),然后使用paste命令將每行的第1列數(shù)據(jù)以空格為分隔符拼接到一起輸出。
方法二:使用awk命令
awk命令也是Linux中一個強大的工具,可以用于處理文本數(shù)據(jù)。
例如,下面是一個含有多列數(shù)據(jù)的文件example.txt:
“`
1 2 3
4 5 6
7 8 9
“`
如果想要刪除第2列和第3列的數(shù)據(jù),可以使用以下命令:
“`
$ awk ‘{print $1}’ example.txt
“`
輸出結(jié)果如下:
“`
“`
這個命令告訴Linux只輸出每行中的第1個字段,即第1列數(shù)據(jù),而忽略第2和第3列數(shù)據(jù)。
如果想要刪除多列數(shù)據(jù),只需要在花括號內(nèi)使用幾個print語句即可。例如,如果想同時刪除第2和第3列數(shù)據(jù),可以使用以下命令:
“`
$ awk ‘{print $1,$4}’ example.txt
“`
輸出結(jié)果如下:
“`
1 3
4 6
7 9
“`
這個命令告訴Linux輸出每行中的第1和第4個字段,即第1和第3列數(shù)據(jù),而忽略第2列數(shù)據(jù)。
方法三:使用sed命令
sed命令是Linux中一個流編輯器,可以用于編輯文本數(shù)據(jù)。
例如,下面是一個含有多列數(shù)據(jù)的文件example.txt:
“`
1 2 3
4 5 6
7 8 9
“`
如果想要刪除第2列和第3列的數(shù)據(jù),可以使用以下命令:
“`
$ sed ‘s/ [0-9]*//2; s/ [0-9]*//2’ example.txt
“`
輸出結(jié)果如下:
“`
1
4
“`
這個命令告訴Linux在每行中刪除第2和第3個數(shù)字,即第2和第3列數(shù)據(jù)。
如果想要刪除多列數(shù)據(jù),只需要在命令中使用更多的s命令即可。例如,如果想同時刪除第2和第3列數(shù)據(jù),可以使用以下命令:
“`
$ sed ‘s/ [0-9]*//2; s/ [0-9]*//2; s/ [0-9]*//2’ example.txt
“`
輸出結(jié)果如下:
“`
1
4
“`
這個命令告訴Linux在每行中刪除第2、第3和第4個數(shù)字,即第2、第3和第4列數(shù)據(jù)。
本文介紹了在Linux中刪除多列數(shù)據(jù)的三種方法,包括使用cut命令、awk命令和sed命令。這些方法都有其各自的優(yōu)點和適用場景,可以根據(jù)需要選擇適合的方法進行操作。無論使用哪種方法,都需要小心謹慎,防止誤刪重要數(shù)據(jù)。
相關(guān)問題拓展閱讀:
- 系統(tǒng)之家Linux下怎么刪除某文件外的所有文件怎么辦
系統(tǒng)之家Linux下怎么刪除某文件外的所有文件怎么辦
刪除制定文件(夾)之外的所有文件呢?
1、方法1,比較麻煩的做法是:
復制需要保留的文件到其他文件夾,然后將該目錄刪除, 然后將需要保留的移動 回來。
mv keep 。。/ #保留文件(夾) keep
rm -rf * #刪除當前文件夾里的所有文件
mv 。。/keep 。/ #將原來的東西移動回來
2、方法2,需要在當前文件夾中進行:
rm -rf ?。╧eep) #刪除keep文件之外的所有文件
rm -rf !(keep1 | keep2) #刪除keep1和keep2文件之外的所有文件
3、方法3,當前文件夾中結(jié)合使用grep和xargs來處理文件名:
ls | grep -v keep | xargs rm #刪除keep文件之外的所有文件
說明: ls先得到當前的所有文件和文件夾的名字, grep -v keep,進行g(shù)rep正則匹配查找keep,-v參數(shù)決定了結(jié)果為匹配之外的結(jié)果,也就是的到了keep之外的所有文件名,然后 xargs用于從 標準輸入獲得參數(shù) 并且傳遞給后面的命令,這里使用的命令是 rm,然后由rm刪除前面選擇的文件。
好處:使用了grep來正則表達式來匹配文件名字,可以一次保留多個文件,從而進行更加準確的處理。
4、方法4,使用find命令代替ls,改進方法3從而能夠處理制定文件夾的文件:
find 。/test/ | grep -v keep | xargs rm #刪除當前test文件夾中keep文件之外的所有文件
說明,用grep而不用find -name選取名字,因為find選取名字時比較麻煩,對正則表達式支持不夠,無法排除指定文件名。
5、方法5,直接使用find命令刪除其他文件:
find 。/ -name ‘[^k][^e][^e][^p]*’ -exec rm -rf {} \; #刪除keep以外的其他文件。
find 。/ -name ‘[^k][^e][^e][^p]*’ | xargs rm -rf #刪除keep以外的其他文件。推薦!
說明:上面第二行的代碼效率高些,原因在于刪除多個文件時 -exec會啟動多個進程來處理,而xargs會啟動一個rm進程來處理。
關(guān)于linux刪除多列的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享標題:如何在Linux中刪除多列數(shù)據(jù)(linux刪除多列)
網(wǎng)站路徑:http://fisionsoft.com.cn/article/dpojoio.html


咨詢
建站咨詢
