Awọn ọna oriṣiriṣi lati Lo Aṣẹ Iwe ni Linux


Njẹ o ti wa ninu ipo kan lati ṣiṣẹ pẹlu awọn faili CSV ati ṣe agbejade iṣelọpọ ni ọna kika tabili eleto? Laipẹ Mo n ṣiṣẹ pẹlu ṣiṣe itọju data lori faili kan ti ko si ni eto to pe. O ni ọpọlọpọ awọn aaye funfun laarin ọwọn kọọkan ati pe MO ni lati yi pada si ọna kika CSV lati Titari si ibi ipamọ data. Lẹhin ti sọ di mimọ ati ṣiṣẹda iṣẹjade ni ọna kika CSV, iṣelọpọ mi kii ṣe afilọ oju lati rii daju iduroṣinṣin data ninu faili CSV. Eyi ni akoko aṣẹ\"Ọwọn" wa ni ọwọ si mi.

Gẹgẹbi manpage, aṣẹ ọwọn\"awọn atokọ iwe iwe-iwe". Ni awọn ọrọ ti o rọrun, ọwọn jẹ ohun elo ti o rọrun ti o le ṣe agbejade iṣẹjade rẹ si ọna kika iwe kan (awọn ori ila ati awọn aaye) ti o da lori ilana ti faili orisun rẹ. apakan ti package package util-Linux.

Ojuami pataki lati ṣe akiyesi nibi ni aṣẹ ọwọn ṣe ihuwasi oriṣiriṣi ni ijabọ kokoro lati mọ diẹ sii nipa eyi.

$ dpkg -S $(which column)

Fun awọn idi ifihan, Mo n lo CentOS 7 ati pe emi yoo fi awọn aṣayan oriṣiriṣi han laarin Ubuntu ati CentOS 7. Lati ṣayẹwo ẹya ọwọn ṣiṣe aṣẹ atẹle. Aṣẹ yii yoo tun fihan ẹya package package util-Linux.

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

O tun le ṣayẹwo ẹya ti util-linux nipa ṣiṣe awọn ofin isalẹ.

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

Ṣaaju lilo pipaṣẹ ọwọn aaye ti o dara lati bẹrẹ yoo jẹ oju-iwe eniyan ati ṣawari awọn aṣayan rẹ.

$ man column

Akojọ Akoonu Faili ni Ọna kika Tabular

Aṣẹ ọwọn le ṣẹda tabili nipa gbigbe orukọ faili sii bi ariyanjiyan pẹlu asia -t . Mo n lo/ati be be lo/passwd bi faili titẹ sii.

$ column -t /etc/passwd

Nwa ni aworan ti o wa loke, o le ro pe eyi kii ṣe ohun ti a nireti ati pe iṣelọpọ le dabi ohun ajeji. Bẹẹni! Otito ni o so. Awọn ọwọn ṣe akiyesi aye bi iyasilẹ aiyipada nigbati o ba ṣẹda tabili kan. Ihuwasi yii le ṣee bori nipasẹ gbigbeja iyasọtọ aṣa.

Aṣedemeji Aṣa

Awọn ipinya aṣa fun ọ ni ọpọlọpọ awọn aṣayan lati ṣiṣẹ pẹlu. Lati ṣẹda iyasọtọ ti aṣa lo Flag -s asia ti o tẹle atẹle. Bayi a yoo lo \":” bi opin si pipin/ati be be lo/passwd faili.

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

Wo aworan ti o wa loke nibiti tabili ti ṣe kika daradara ati ti eleto. Lati ẹya 2.23-util-linux aṣayan -s ti yipada lati ma ṣe ojukokoro.

Bayi ṣiṣe aṣẹ kanna ni Ubuntu ati pe abajade yoo jẹ ojukokoro. Eyi jẹ nitori aṣẹ ọwọn (bsdmainutils) lori Ubuntu yoo ṣe itọju awọn ọrọ to sunmọ wọn bi ọrọ kan.

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

Lati bori ihuwasi yii lo asia -n .

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

Foju Awọn Laini ofo Funfun ni Ijade Faili

Nigbati o ba ni awọn ila ofo ninu faili ifawọle rẹ, aṣẹ ọwọn nipasẹ aiyipada foju rẹ. Wo faili ifawọle mi ti o wa ni ọna kika CSV ati pe Mo ṣafikun laini ofo laarin gbogbo ila. Bayi jẹ ki a ṣẹda tabili bi a ti ṣe tẹlẹ pẹlu faili titẹ sii yii.

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

Lati aworan ti o wa loke o le wo faili iwọle mi dummy.txt ni awọn laini ofo ati nigbati Mo gbiyanju lati ṣẹda tabili kan, awọn ila ofo ni a foju.

Akiyesi: Eyi ni ihuwasi aiyipada fun mejeeji iyatọ\"bsdmainutils/util-linux" ti aṣẹ ọwọn. Ṣugbọn ọwọn (bsdmainutils) ni aṣayan lati bori iwa yii nipa gbigbe asia -e kọja.

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

Lati aworan ti o wa loke, o le wo tabili ti wa ni kika daradara ati pe awọn ila ofo ko ni foju.

Olupin Ijade Faili

Nipa aiyipada, awọn alafo funfun meji ni yoo lo bi awọn olupilẹṣẹ iṣẹjade. Ihuwasi yii le bori nipasẹ fifi asia -o ranṣẹ. Iwọ kii yoo ni aṣayan ipinya ti o wu wa ninu ọwọn (bsdmainutils).

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

Yi awọn ori ila Faili pada si Awọn ọwọn

Lilo awọn -x asia ti o le yi awọn ila pada si awọn ọwọn. Ihuwasi yii jẹ kanna ni mejeeji rhel ati awọn iyatọ ubuntu ti aṣẹ ọwọn. Eyi jẹ ẹya ti o wulo pupọ nigbati o ni lati dimu aaye kan nipasẹ aṣẹ tabi aṣẹ ọwọn lẹhinna yi pada si akọle fun faili CSV rẹ.

$ column -x fillcols.txt

Nigbati o ba ṣiṣẹ aṣẹ ọwọn laisi lilo eyikeyi awọn asia ihuwasi yoo jẹ bakanna bi fifin Flag -x .

Wa Iwọn Ọwọn

Ọwọn naa lo iyipada ayika ($COLUMNS) lati wa iwọn ti ebute rẹ ati da lori iwọn lilo pipaṣẹ iwoyi, iwọn tabili yoo han ni ebute naa.

$ echo $COLUMNS

Wo aworan ni isalẹ. Ni ibẹrẹ, Mo ṣe atunṣe ebute mi lati ni $COLUMNS iwọn ti a ṣeto si 60 ati ṣiṣe aṣẹ ọwọn naa. Lẹẹkansi Mo ṣe atunṣe ebute mi lati ni $COLUMNS iwọn ti a ṣeto si 114 ati ṣiṣe aṣẹ ọwọn lẹẹkansii. O le wo iyatọ ninu bi ọwọn ṣe tẹ tabili naa nigba ti a ba tun iwọn ebute naa ṣe.

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

Iyẹn ni fun nkan yii. Ti o ba ni esi eyikeyi jọwọ jọwọ pese ni apakan asọye.