Modi differenti kif tuża l-kmand tal-kolonna fil-Linux
Qatt kont f'sitwazzjoni li taħdem ma 'fajls CSV u tipproduċi output f'format tabulari strutturat? Riċentement kont qed naħdem bit-tindif tad-dejta fuq fajl li mhuwiex fi struttura xierqa. Għandu daqstant whitespaces bejn kull kolonna u għandi nikkonvertih f'format CSV biex nimbotta għad-database. Wara t-tindif u l-ħolqien tal-output fil-format CSV, il-produzzjoni tiegħi mhix viżwalment attraenti biex tivverifika l-integrità tad-dejta fil-fajl CSV. Dan huwa l-ħin li l-kmand tal-\Kolonna jiġi utli għalija.
Skont manpage, il-kmand tal-kolonna \listi tal-kolonna. Fi kliem sempliċi, il-kolonna hija utilità sempliċi li tista' tifformattja l-output tiegħek f'format ta' kolonna (ringieli u oqsma) ibbażat fuq l-istruttura tal-fajl tas-sors tiegħek. Il-kmand tal-kolonna huwa parti mill-pakkett util-linux.
Punt importanti li wieħed jinnota hawnhekk huwa l-kmand tal-kolonna jaġixxi b'mod differenti fir-rapport tal-bug biex tkun taf aktar dwar dan.
$ dpkg -S $(which column)
Għal skopijiet ta 'dimostrazzjoni, qed nuża CentOS 7 u se nuri għażliet differenti bejn Ubuntu u CentOS 7. Biex tiċċekkja l-verżjoni tal-kolonna mexxi l-kmand li ġej. Dan il-kmand se juri wkoll il-verżjoni tal-pakkett util-linux.
$ column --version # will not work in Debian/ubuntu
Tista 'wkoll tiċċekkja l-verżjoni ta' util-linux billi tħaddem il-kmandi hawn taħt.
$ rpm -qa | grep -i util-linux # Redhat,Centos,Fedora,Amazon Linux $ dpkg -l | grep -i util-linux # Ubuntu
Qabel ma tuża l-kmand tal-kolonna post tajjeb biex tibda tkun il-paġna man u tesplora l-għażliet tagħha.
$ man column
Lista tal-Kontenut tal-Fajl f'Format Tabulari
Il-kmand tal-kolonna jista' joħloq tabella billi jgħaddi l-isem tal-fajl bħala argument flimkien mal-bandiera -t
. Qed nuża /etc/passwd bħala l-fajl tal-input.
$ column -t /etc/passwd
Meta wieħed iħares lejn l-immaġni ta 'hawn fuq, tista' taħseb li dan mhux dak li stennejna u l-output jista 'jidher stramb. Iva! Għandek raġun. Il-kolonni jqisu l-ispazju bħala d-delimitatur default meta joħolqu tabella. Din l-imġieba tista' tiġi ssuperata billi jgħaddi delimitatur tad-dwana.
Delimetru tad-dwana
Id-delimitaturi tad-dwana jagħtuk firxa wiesgħa ta 'għażliet biex taħdem magħhom. Biex toħloq delimitatur personalizzat uża l-marka -s
segwit minn delimitatur. Issa se nużaw \:”
bħala delimitatur biex naqsmu l-fajl /etc/passwd.
$ column -s ":" -t /etc/passwd
Ħares lejn l-immaġni ta 'hawn fuq fejn it-tabella hija fformattjata u strutturata tajjeb. Mill-verżjoni util-linux 2.23 l-għażla -s
ġiet mibdula biex ma tkunx greedy.
Issa mexxi l-istess kmand f'Ubuntu u r-riżultat ikun greedy. Dan għaliex il-kmand tal-kolonna (bsdmainutils) fuq Ubuntu se jittratta kliem multipli maġenbhom bħala kelma waħda.
$ column -s ":" -t /etc/passwd
Biex tegħleb din l-imġieba uża l-marka -n
.
$ column -t -s ":" -n /etc/passwd # Only on Debian/Ubuntu
Injora Linji Bojod vojta fl-Output tal-Fajl
Meta jkollok linji vojta fil-fajl tad-dħul tiegħek, il-kmand tal-kolonna awtomatikament jinjora. Ara l-fajl tad-dħul tiegħi li huwa f'format CSV u żidt linja vojta bejn kull linja. Issa ejja noħolqu tabella kif għamilna qabel ma 'dan il-fajl input.
$ column -t -s ";" dummy.txt
Mill-immaġni ta 'hawn fuq tista' tara l-fajl tad-dħul tiegħi dummy.txt għandu linji vojta u meta nipprova noħloq tabella, linji vojta jiġu injorati.
Nota: Din hija l-imġieba default kemm għall-varjant \bsdmainutils/util-linux tal-kmand tal-kolonna. Iżda l-kolonna (bsdmainutils) għandha l-għażla li tegħleb din l-imġieba billi tgħaddi l-marka -e
.
$ column -e -t -s "," dummy.txt # Only on Debian/Ubuntu
Mill-immaġni ta 'hawn fuq, tista' tara li t-tabella hija fformattjata kif suppost u l-linji vojta mhumiex injorati.
File Output Separator
B'mod awtomatiku, żewġ spazji bojod se jintużaw bħala separaturi tal-output. Din l-imġieba tista' tiġi megħluba billi tgħaddi l-marka -o
. Mhux se jkollok għażla ta' separatur tal-output disponibbli fil-kolonna (bsdmainutils).
$ column -t -s "," -o "||" dummy.txt # Only on Rhel based distro
Ikkonverti Ringieli tal-Fajl f'Kolonni
Billi tuża l--x
il-bandiera tista' tikkonverti ringieli f'kolonni. Din l-imġieba hija l-istess kemm fil-varjanti rhel u ubuntu tal-kmand tal-kolonna. Din hija karatteristika utli ħafna meta jkollok taqbad ċertu qasam permezz tal-kmand tal-awk jew tal-kolonna imbagħad jaqilbu għall-header għall-fajl CSV tiegħek.
$ column -x fillcols.txt
Meta tmexxi l-kmand tal-kolonna mingħajr ma tuża l-ebda bandiera l-imġieba tkun l-istess bħal tgħaddi l-bandiera -x
.
Sib Daqs tal-Kolonna
Il-kolonna tuża varjabbli ambjentali ($COLUMNS)
biex issir taf id-daqs tat-terminal tiegħek u abbażi tad-daqs uża l-kmand eku, id-daqs tal-mejda se jintwera fit-terminal.
$ echo $COLUMNS
Agħti ħarsa lejn l-immaġni hawn taħt. Inizjalment, jien biddel id-daqs tat-terminal tiegħi biex ikolli $COLUMNS
id-daqs issettjat għal 60 u mexxi l-kmand tal-kolonna. Għal darb'oħra rġajt id-daqs tat-terminal tiegħi biex ikolli $COLUMNS
id-daqs issettjat għal 114 u erġajt għamilt il-kmand tal-kolonna. Tista 'tara d-differenza fil-mod kif il-kolonna tipprintja t-tabella meta nbiddlu d-daqs tat-terminal.
$ column -t -s ":" /etc/passwd | head 5
Dak hu għal dan l-artikolu. Jekk għandek xi feedback jekk jogħġbok ipprovdiha fit-taqsima tal-kummenti.