File saya,
ARCHIVE B1_NAME B2_NAME B3_NAME ELEMENT INFO_NAM WERT PROCID
-------- -------- -------- -------- -------- -------- ---- ------
15MinAvg AIRSS 33-GIS DMDMGIS1 I MvAvr15m 1123 CP
15MinAvg AIRSS 33-GIS DMDMGIS1 P MvAvr15m 2344 CP
15MinAvg AIRSS 33-GIS DMDMGIS1 Q MvAvr15m 4545 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 I MvAvr15m 6576 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 P MvAvr15m 4355 CP
15MinAvg AIRSS 33-GIS DMDMGIS2 Q MvAvr15m 6664 CP
Keluaran,
ARCHIVE B1_NAME B2_NAME B3_NAME ELEMENT WERT
-------- -------- -------- -------- ------- ----
15MinAvg AIRSS 33-GIS DMDMGIS1 I 1123
15MinAvg AIRSS 33-GIS DMDMGIS1 P 2344
15MinAvg AIRSS 33-GIS DMDMGIS1 Q 4545
15MinAvg AIRSS 33-GIS DMDMGIS2 I 6576
15MinAvg AIRSS 33-GIS DMDMGIS2 P 4355
15MinAvg AIRSS 33-GIS DMDMGIS2 Q 6664
Saya ingin menghapus dua kolom INFO_NAM
dan WERT
dari file input saya.
shell
shell-script
text-processing
sed
awk
pmaipmui
sumber
sumber
INFO_NAM
&PROCID
dihapusawk '{$(NF-1)=$(NF-2)=""};1' <file | column -t
dapat memformatnya dengan baik.Jawaban:
Jangan cetak kolom ke- 6 dan ke -8
sumber
Ini telah dijawab sebelumnya di tempat lain di Stack Overflow.
/programming/15361632/delete-a-column-with-awk-or-sed /programming/7551219/deleting-columns-from-a-file-with-awk -atau-dari-perintah-line-on-linux dll.
Saya percaya
awk
adalah yang terbaik untuk itu.Dimungkinkan untuk digunakan
cut
juga.sumber
cut
, atau tidak menyebutkannya?--complement
opsi untukcut
mungkin berguna di sini, yaitu menghapus dua bidang daripada memilih enam:cut -f6,8 --complement file
cut –c1-45,55-58
,. Tetapi sebelum menjalankan ini saya harus menghitung total karakter maka hanya saya yang bisa menggunakan ini. Tapi saya ingin mencetak kolom dengan format input yang samaGunakan
printf
untuk mempertahankan format masing-masing bidang. Setiap bidang panjang x karakter dan tanda minus membenarkan string yang tersisa.sumber