Ụzọ dị iche iche iji jiri iwu kọlụm na Linux


Ọ dịtụla mgbe ị nọ n'ọnọdụ iji faịlụ CSV rụọ ọrụ wee mepụta mmepụta n'ụdị tabular ahaziri ahazi? N'oge na-adịbeghị anya, m na-arụ ọrụ na-ehichapụ data na faịlụ na-adịghị na nhazi kwesịrị ekwesị. Ọ nwere ọtụtụ oghere ọcha n'etiti kọlụm ọ bụla na m ga-atụgharị ya na usoro CSV iji kwaba na nchekwa data. Mgbe ihichachara na ịmepụta mmepụta na usoro CSV, mmepụta m anaghị adọrọ mmasị na anya iji nyochaa iguzosi ike n'ezi data na faịlụ CSV. Nke a bụ oge iwu \Column na-abịara m aka.

Dị ka manpage si kwuo, iwu kọlụm\listi kọlụm N'okwu dị mfe, kọlụm bụ ngwa dị mfe nke nwere ike ịhazi mmepụta gị ka ọ bụrụ usoro kọlụm (ahịrị na ubi) dabere na nhazi nke faịlụ isi mmalite gị. akụkụ nke ngwugwu util-linux.

Otu ihe dị mkpa ị ga-amata ebe a bụ iwu kọlụm na-akpa àgwà dị iche na mkpesa ahụhụ ka ịmatakwu banyere nke a.

$ dpkg -S $(which column)

Maka ebumnuche ngosi, m na-eji CentOS 7 ma gosipụta nhọrọ dị iche iche n'etiti Ubuntu na CentOS 7. Iji lelee ụdị kọlụm na-agba iwu na-esonụ. Iwu a ga-egosikwa ụdị ngwugwu util-linux.

$ column --version  # will not work in Debian/ubuntu

Ị nwekwara ike ịlele ụdị util-linux site na iji iwu ndị a.

$ rpm -qa | grep -i util-linux   # Redhat,Centos,Fedora,Amazon Linux
$ dpkg -l | grep -i util-linux    # Ubuntu

Tupu iji iwu kọlụm ebe dị mma ịmalite ga-abụ ibe nwoke ma nyochaa nhọrọ ya.

$ man column

Depụta ọdịnaya faịlụ n'ụdị tabular

Iwu kọlụm nwere ike ịmepụta tebụl site na ịnyefe aha faịlụ dị ka arụmụka yana ọkọlọtọ -t. Ana m eji /etc/passwd dị ka faịlụ ntinye.

$ column -t /etc/passwd

N'ileghachi anya na foto dị n'elu, ị nwere ike iche na nke a abụghị ihe anyị tụrụ anya ya na mmepụta nwere ike iyi ihe dị egwu. Ee! Ị nwetere ya. Ogidi na-atụle oghere dị ka ihe ndabara mgbe ị na-eke tebụl. Enwere ike ịkwụsị omume a site na ịgafe ihe mgbochi omenala.

Delimeter omenala

Ndị na-amachi omenala na-enye gị ọtụtụ nhọrọ iji rụọ ọrụ. Iji mepụta ihe nchapụta omenala jiri ọkọlọtọ -s yana ihe nchapụta na-esote. Ugbu a, anyị ga-eji \: dị ka ihe nkpuchi iji kewaa /etc/passwd faịlụ.

$ column -s ":"  -t /etc/passwd

Lelee onyonyo dị n'elu ebe a na-ahazi tebụl nke ọma ma hazie ya. Site util-linux ụdị 2.23 nhọrọ -s ka agbanweela ka ọ ghara ịdị anyaukwu.

Ugbu a na-agba ọsọ otu iwu na Ubuntu na nsonaazụ ga-abụ anyaukwu. Nke a bụ n'ihi na iwu kọlụm (bsdmainutils) na Ubuntu ga-emeso ọtụtụ okwu dị n'akụkụ dị ka otu okwu.

$ column -s ":"  -t /etc/passwd

Iji merie omume a jiri ọkọlọtọ -n.

$ column -t -s ":" -n /etc/passwd             # Only on Debian/Ubuntu

Ileghara ahịrị ọcha efu na mpụta faịlụ

Mgbe ị nwere ahịrị oghere na faịlụ ntinye gị, iwu kọlụm na ndabara na-eleghara ya anya. Hụ faịlụ ntinye m nke dị n'ụdị CSV wee tinye ahịrị oghere n'etiti ahịrị ọ bụla. Ugbu a, ka anyị mepụta tebụl dịka anyị mere na mbụ na faịlụ ntinye a.

$ column -t -s ";" dummy.txt

Site na onyonyo dị n'elu ị nwere ike ịhụ faịlụ ntinye m dummy.txt nwere ahịrị efu na mgbe m na-agbalị ịmepụta tebụl, a na-eleghara ahịrị efu anya.

Cheta na: Nke a bụ omume ndabara maka ma ụdị \bsdmainutils/util-linux nke iwu kọlụm. Mana kọlụm (bsdmainutils) nwere nhọrọ iji mebie omume a site n'ịfefe ọkọlọtọ -e.

$ column -e -t -s "," dummy.txt        # Only on Debian/Ubuntu

Site na foto dị n'elu, ị nwere ike ịhụ na a na-ahazi tebụl nke ọma na ahịrị ndị efu adịghị eleghara anya.

Ihe nkesa mmepụta faịlụ

Site na ndabara, a ga-eji oghere ọcha abụọ dị ka ihe nkesa mmepụta. Enwere ike ịkagbu omume a site na ịfefe ọkọlọtọ -o. Ị gaghị enwe nhọrọ nkesa mmepụta dị na kọlụm (bsdmainutils).

$ column -t -s "," -o "||" dummy.txt	# Only on Rhel based distro

Tụgharịa ahịrị faịlụ ka ọ bụrụ kọlụm

Iji -x ọkọlọtọ ị nwere ike ịtụgharị ahịrị ka ọ bụrụ kọlụm. Omume a bụ otu na ụdị rhel na ubuntu nke iwu kọlụm. Nke a bụ ihe bara uru nke ukwuu mgbe ị ga-ejide mpaghara ụfọdụ site na iwu awk ma ọ bụ kọlụm wee gbanwee ya na nkụnye eji isi mee maka faịlụ CSV gị.

$ column -x fillcols.txt

Mgbe ị na-eme iwu kọlụm na-ejighi ọkọlọtọ ọ bụla, omume ahụ ga-adị ka ịfefe ọkọlọtọ -x.

Chọta nha kọlụm

Kọlụm a na-eji mgbanwe gburugburu ($COLUMNS) iji chọpụta nha ọnụ ọnụ gị yana dabere na nha jiri iwu echo, nha tebụl ga-egosipụta na njedebe.

$ echo $COLUMNS

Lelee foto dị n'okpuru. Na mbido, ewegharịrị m ọnụ ọnụ ọnụ m iji nweta $COLUMNS nha ka atọrọ ka ọ bụrụ 60 wee mee iwu kọlụm. Ọzọ, agbanwere m ọnụ ọnụ ọnụ m iji nweta $COLUMNS nha ka atọrọ 114 wee mee iwu kọlụm ọzọ. Ị nwere ike ịhụ ihe dị iche na otu kọlụm na-ebipụta tebụl mgbe anyị megharịa ọnụ ọnụ.

$ column -t -s ":" /etc/passwd | head 5

Nke ahụ bụ maka akụkọ a. Ọ bụrụ na ị nwere nzaghachi ọ bụla biko nye ya na ngalaba nkọwa.