Ho file di testo su più righe di dati (a volte) delimitati da tabulazioni. Vorrei produrre il file in modo da poterlo dare un'occhiata - quindi mi piacerebbe vedere solo i primi 80 caratteri di ogni riga (ho progettato il file di testo per mettere le cose importanti al primo posto su ogni riga).
Pensavo di poter usare cat per leggere ogni riga del file e inviare ogni riga al comando successivo in una pipe:
cat tabfile | cut -c -80
Ma quello sembrava rotto. Ho provato a fare il monkeying e grep sembrava funzionare, ma poi ho scoperto che no, non è vero (non tutte le righe del file avevano più di 80 caratteri) - sembra che le schede siano contate come singoli caratteri per taglio.
Provai:
cat tabfile | tr \t \040 | cut -c -80
Anche se ciò rovinerebbe un po 'i miei dati, eliminando la leggibilità degli spazi bianchi. Ma non ha funzionato. Né ha fatto:
cat tabfile | tr \011 \040 | cut -c -80
Forse sto usando tr sbagliato? Ho avuto problemi con tr prima, volendo rimuovere più spazi (sembra che la versione di tr a cui ho accesso su questa macchina abbia un'opzione -s per comprimere più personaggi - potrei aver bisogno di giocarci di più)
Sono sicuro che se avessi fatto un casino avrei potuto usare perl, awk o sed o qualcosa per farlo.
Tuttavia, vorrei una soluzione che utilizza i comandi regolari (POSIX?), In modo che sia il più portatile possibile. Se finissi per usare tr, probabilmente alla fine proverei a trasformare le schede in caratteri, magari fare un calcolo, tagliare il calcolo, e poi trasformare quei caratteri in schede per l'output.
Non è necessario che sia una singola riga / inserita direttamente nella riga di comando: uno script va bene.
Ulteriori informazioni sui file di tabulazione:
Uso la scheda per spezzare i campi, perché un giorno potrei voler importare dati in qualche altro programma. Quindi tendo ad avere solo una scheda tra i contenuti. Ma uso anche le schede per allineare le cose con le colonne verticali, per facilitare la leggibilità quando guardo il file di testo semplice. Il che significa che per alcune parti di testo riempio la fine del contenuto con spazi fino a quando non arrivo a dove funzionerà la scheda allineando il campo successivo con quelli sopra e sotto di esso.
DarkTurquoise # 00CED1 Mare, cielo, barche a remi Natura MediumSpringGreen # 00FA9A Utile per gli alberi Magia Lime # 00FF00 Solo per polli primaverili e frutta $
pr
da coreutils
: pr -1 -t -l200 -W80 file
. Aumenta / diminuisci la lunghezza della pagina (numero dopo -l
) secondo le tue necessità.