日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何使用Linux分隔CSV文件(linux分隔csv文件)

CSV文件(Comma Separated Values)是一種常用的電子表格文件格式,常用于數(shù)據(jù)導(dǎo)入和導(dǎo)出。在數(shù)據(jù)量較大的情況下,往往需要對(duì)CSV文件進(jìn)行分隔處理。Linux是一種功能強(qiáng)大、免費(fèi)開源的操作系統(tǒng),具有豐富的命令行工具,通過這些工具可以輕松地對(duì)CSV文件進(jìn)行分隔。本文將介紹。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比龍港網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍港網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍港地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。

1. 安裝和配置CSVKit

CSVKit是一個(gè)強(qiáng)大的命令行工具,用于處理CSV文件,可在Linux、macOS和Windows上運(yùn)行。安裝CSVKit需要使用pip包管理器,在終端中輸入以下命令:

“`

$ pip install csvkit

“`

待安裝完成后,輸入以下命令練習(xí):

“`

$ csvclean -n filename.csv

“`

如果以上命令可以成功輸出CSV文件中所有字段名稱,則表示CSVKit已成功安裝和配置。

2. 導(dǎo)出CSV文件

在Linux中,常用的電子表格文件格式是xlsx和ods等。如果要使用CSVKit對(duì)電子表格文件進(jìn)行CSV格式導(dǎo)出,可以使用以下命令:

“`

$ in2csv input.xlsx > output.csv

“`

以上命令將導(dǎo)出input.xlsx文件中的所有數(shù)據(jù),并將其保存為output.csv文件。如果文件路徑錯(cuò)誤,則命令將無法執(zhí)行。

3. 分隔CSV文件

使用CSVKit分隔CSV文件通常需要使用csvcut和csvjoin命令。下面分別介紹這兩種命令的使用方法。

csvcut命令用于分隔CSV文件的列,可使用以下命令:

“`

$ csvcut -c 1,3 input.csv > output.csv

“`

以上命令將input.csv文件(包含多個(gè)列)中的第1列和第3列提取出來,并將它們保存為output.csv文件。如果文件路徑錯(cuò)誤,則命令將無法執(zhí)行。

csvjoin命令用于分隔CSV文件的行,可使用以下命令:

“`

$ csvjoin -c 1 file1.csv file2.csv > output.csv

“`

以上命令將file1.csv文件和file2.csv文件中的行組合在一起,并將其保存為output.csv文件。如果需要選擇不同的列進(jìn)行組合,可以使用-c選項(xiàng)指定。

4. 其他注意事項(xiàng)

在使用CSVKit分隔CSV文件時(shí),需要注意以下幾點(diǎn):

– CSV文件首行為字段名稱,只有CSVKit能夠處理這種情況;

– CSV文件中不應(yīng)該包含與字段名稱相同的數(shù)據(jù);

– 編碼問題:如果CSV文件中有包含Unicode字符或非英文字符的數(shù)據(jù),需要將文件編碼方式改為utf-8或utf-16等。

使用linux分隔csv文件可以讓數(shù)據(jù)處理更加高效、快速和方便。CSVKit是一個(gè)功能強(qiáng)大的命令行工具,能夠輕松處理CSV文件。在使用CSVKit分隔CSV文件時(shí),需要注意CSV文件的格式、編碼、字段名稱等問題。通過本文介紹的方法,相信大家可以輕松地處理CSV文件,提高數(shù)據(jù)分析和處理效率。

相關(guān)問題拓展閱讀:

  • Linux里面分割,切片是什么?

Linux里面分割,切片是什么?

在Linux最常用的文件生成和切片工具是dd,它功能比較全面,但無法以行為單位提取文件數(shù)據(jù),也無法直接將文件按大小或行數(shù)進(jìn)行均分(除非借助循環(huán))。另兩款數(shù)據(jù)分割工具split和csplit能夠比較輕松地實(shí)現(xiàn)這些需求。csplit是split的升級(jí)版。

1.1 dd命令

從if指定的文件讀取數(shù)據(jù),寫入到of指定的文件。使用bs指定讀取和寫入的塊大小,使用count指定讀取和寫入的數(shù)據(jù)塊數(shù)量,bs和count相乘就是文件總大小??梢灾付╯kip忽略讀卜鬧取if指定文件的前多少個(gè)塊,seek指定寫入到of指定文件時(shí)忽略前多少個(gè)塊。型頌罩

dd if=/dev/zero of=/tmp/abc.1 bs=1M count=20

if是input file,of是output file;bs有c(1byte)、w(2bytes)、b(512bytes)、kB(1000bytes)、K(1024bytes)、MB(1000)、M(1024)和GB、G等幾種單位。因此,不要隨意在單位后加上字母B。

假設(shè)現(xiàn)有文件CentOS.iso的大小1.3G,需要將其切分后還原,切分的之一個(gè)小文件大小為500M。

dd if=/tmp/CentOS.iso of=/tmp/CentOS1.iso bs=2M count=250

生成第二個(gè)小文件,由于第二個(gè)小文件不知道具體大小,所以不指定count選項(xiàng)。由于第二個(gè)小文件要從第500M處開始切分,于是需要忽略CentOS.iso的前500M。假設(shè)bs=2M,于是skip掉的數(shù)據(jù)塊數(shù)量為250。

dd if=/tmp/CentOS.iso of=/tmp/CentOS2.iso bs=2M skip=250

現(xiàn)在CentOS.iso=CentOS1.iso+CentOS2.iso??梢詫entOS.iso還原。

cat CentOS1.iso CentOS2.iso >CentOS_m.iso

比較CentOS_m.iso和CentOS.iso的md5值,它們是完全一樣的。

shell> md5sum CentOS_m.iso CentOS.iso

504dbef14aed9bf85d9fdc667 CentOS_m.iso

504dbef14aed9bf85d9fdc667 CentOS.iso

那么seek選項(xiàng)呢?和skip有什么區(qū)別?skip選項(xiàng)是忽略讀取時(shí)的前N個(gè)數(shù)據(jù)塊,而seek是忽略寫入文件的前N個(gè)數(shù)據(jù)塊。假如要寫入的文件為a.log,則seek=2時(shí),將從a.log的第3個(gè)數(shù)據(jù)塊開始追加數(shù)據(jù),如果a.log文件本身大小就不足2個(gè)數(shù)據(jù)塊,則缺少的部分自動(dòng)使用/dev/zero填充。

于是,在有了CentOS1.iso的基礎(chǔ)上,要將其還原為和CentOS.iso相同的文件,可以使用下面的方法:

dd if=/tmp/CentOS.iso of=/tmp/CentOS1.iso bs=2M skip=250 seek=250

還原后,它們的md5值也是相同的。

shell>md5sum CentOS1.iso CentOS.iso

504dbef14aed9bf85d9fdc667 CentOS1.iso

504dbef14aed9bf85d9fdc667 CentOS.iso

1.2 split命令

split工具的功能是將文件切分為多個(gè)小文件。既然要生櫻漏成多個(gè)小文件,必然要指定切分文件的單位,支持按行切分以及按文件大小切分,另外還需解決小文件命名的問題。例如,文件名前綴、后綴。如果未明確指定前綴,則默認(rèn)的前綴為”x”。

以下是命令的語法說明:

例如,將/etc/fstab按行切分,每5行切分一次,并指定小文件的前綴為”fs_”,后綴為數(shù)值后綴,且后綴長度為2。

# split -l 5 -d -a 2 /etc/fstab fs_

# lsfs_00 fs_01 fs_02

查看任一小文件。

# catfs_01

# Accessible filesystems, by reference, are maintained under’/dev/disk’# Seeman pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#

UUID=b2a70faf-aea4-4d8e-8be8-c7109ac9c8b8 / xfs defaults 0 0UUID=367d6a77-033b-4037-bbcbead095 /boot xfs defaults 0 0

可以將這些切分后的小文件重新組裝還原。例如,將上面的三個(gè)小文件還原為~/fstab.bak。

# cat fs_0 >~/fstab.bak

還原后,它們的內(nèi)容是完全一致的??梢允褂胢d5sum比較。

# md5sum /etc/fstab ~/fstab.bak

29b94c500f484040a675cb4ef81c87bf/etc/fstab

29b94c500f484040a675cb4ef81c87bf/root/fstab.bak

還可以將標(biāo)準(zhǔn)輸入的數(shù)據(jù)進(jìn)行切分,并分別寫入到小文件中。例如:

# seq| split -l 3 -d -new_

# ls new*new_00 new_01 new_02

可以為每個(gè)小文件追加額外的后綴。有些老版本的split不支持該選項(xiàng),而是在csplit上支持的,但是新版本的split已經(jīng)支持。例如,加上”.log”。

# seq| split -l 3 -d -a 3 –additional-suffix=”.log” -new1_

# ls new1*new1_000.log new1_001.log new1_002.log new1_003.log

1.3 csplit命令

split只能按行或按照大小進(jìn)行切分,無法按段落切分。csplit是split的變體,功能更多,它主要是按指定上下文按段落分割文件。

csplit … FILE PATTERN…

描述:按照PATTERN將文件切分為”xx00″,”xx01″, …,并在標(biāo)準(zhǔn)輸出中輸出每個(gè)小文件的字節(jié)數(shù)。

選項(xiàng)說明:-b FORMAT:指定文件后綴格式,格式為printf的格式,默認(rèn)為%02d。表示后綴以2位數(shù)值,且不足處以0填充。-f PREFIX:指定前綴,不指定是默認(rèn)為”xx”。-k:用于突況。表示即使發(fā)生了錯(cuò)誤,也不刪除已經(jīng)分割完成的小文件。-m:明確禁止文件的行去匹配PATTERN。-s:(silent)不打印小文件的文件大小。-z:如果切分后的小文件中有空文件,則刪除它們。

FILE:待切分的文件,如果要切分標(biāo)準(zhǔn)輸入數(shù)據(jù),則使用”-“。

PATTERNs:

INTEGER :數(shù)值,假如為N,表示拷貝1到N-1行的內(nèi)容到一個(gè)小文件中,其余內(nèi)容到另一個(gè)小文件中。/REGEXP/:從匹配到的行開始按照偏移量拷貝指定行數(shù)的內(nèi)容到小文件中。

:其中OFFSET的格式為”+N”或”-N”,表示向后和向前拷貝N行%REGEXP%:匹配到的行被忽略。

{INTEGER} :假如值為N,表示重復(fù)N此前一個(gè)模式匹配。

{*} :表示一直匹配到文件結(jié)尾才停止匹配。

假設(shè)文件內(nèi)容如下:

# cattest.txt

SERVER-1192.168.0.1success

192.168.0.2failed

192.168.0.3pending

192.168.0.4success

SERVER-2192.168.0.1failed

192.168.0.2failed

192.168.0.3success

192.168.0.4pending

SERVER-3192.168.0.1pending

192.168.0.2pending

192.168.0.3pending

192.168.0.4 failed

假設(shè)每個(gè)SERVER-n表示一個(gè)段落,于是要按照段落切分該文件,使用以下語句:

# csplit -f test_ -b %04d.log test.txt /SERVER/ {*}0

140

139

140

“-f test_” 指定小文件前綴為”test_”, “-b %04d.log” 指定文件后綴格式”00xx.log”,它自動(dòng)為每個(gè)小文件追加額外的后綴”.log”, “/SERVER/” 表示匹配的模式,每匹配到一次,就生成一個(gè)小文件,且匹配到的行是該小文件中的內(nèi)容, “{*}” 表示無限匹配前一個(gè)模式即/SERVER/直到文件結(jié)尾,假如不知道{*}或指定為{1},將匹配一次成功后就不再匹配。

# ls test_*test_0000.log test_0001.log test_0002.log test_0003.log

上面的文件中雖然只有三個(gè)段落:SERVER-1,SERVER-2,SERVER-3,但切分的結(jié)果生成了4個(gè)小文件,并且注意到之一個(gè)小文件大小為0字節(jié)。為什么會(huì)如此?因?yàn)樵谀J狡ヅ涞臅r(shí)候,每匹配到一行,這一行就作為下一個(gè)小文件的起始行。由于此文件之一行”SERVER-1″就被/SERVER/匹配到了,因此這一行是作為下一個(gè)小文件的內(nèi)容,在此小文件之前還自動(dòng)生成一個(gè)空文件。

生成的空文件可以使用”-z”選項(xiàng)來刪除。

# csplit -f test1_ -z -b %04d.log test.txt /SERVER/ {*}140

139

140

還可以指定只拷貝匹配到的行偏移數(shù)量。例如,匹配到行時(shí),只拷貝它后面的1行(包括它自身共兩行),但多余的行將放入下一個(gè)小文件中。

# csplit -f test2_ -z -b %04d.log test.txt /SERVER/+2 {*}42

139

140

之一個(gè)小文件只有兩行。

# cattest2_0000.log

SERVER-1192.168.0.1 success

SERVER-1段落的其余內(nèi)容放入到了第二個(gè)小文件中。

# cattest2_0001.log

192.168.0.2failed

192.168.0.3pending

192.168.0.4success

SERVER-2192.168.0.1 failed

同理第三個(gè)小文件也一樣,直到最后一個(gè)小文件中存放剩余所有無法匹配的內(nèi)容。

# cattest2_0003.log

192.168.0.2pending

192.168.0.3pending

192.168.0.4 failed

指定”-s”或”-q”選項(xiàng)以靜默模式運(yùn)行,將不會(huì)輸出小文件的大小信息。

# csplit -q -f test3_ -z -b %04d.log test.txt /SERVER/+2 {*}linux分隔csv文件的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux分隔csv文件,如何使用Linux分隔CSV文件,Linux里面分割,切片是什么?的信息別忘了在本站進(jìn)行查找喔。

創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。


網(wǎng)站題目:如何使用Linux分隔CSV文件(linux分隔csv文件)
路徑分享:http://m.5511xx.com/article/dpedggd.html