12
votes

Supprimer les principaux espaces du fichier

My Shell a un appel à «Fortune» dans mon fichier .Login, pour me fournir un petit message de la journée. Cependant, certaines des fortunes commencent par une ligne de but importain de premier plan, certains commencent par deux, et certaines n'ont pas du tout de dirigeantes lignes d'espaces. Cela me bugs.

Je me suis assis pour envelopper la fortune avec mon propre script shell, qui enlèverait toute la principale espace de l'entrée, sans détruire une mise en forme de la fortune réelle, qui peut avoir intentionnellement des lignes de blancheur.

Il ne semble pas être une solution facile à deux minutes de doublure, et comme je l'ai lu (Reed) à travers les pages de l'homme pour SED et Grep, je pensais que je demanderais à nos merveilleux patrons ici.


1 commentaires

Pourriez-vous explicitement montrer une fortune d'échantillon et souligner les parties que vous souhaitez modifier et quelles parties vous envisagez une partie du formatage qui ne devrait pas changer.


4 Réponses :


2
votes
fortune | sed '/./,$!d'

0 commentaires

1
votes

Que diriez-vous:

sed "s/^ *//" < fortunefile


1 commentaires

Pourquoi cela a-t-il été voté? Voici comment j'ai lu la demande de l'OP.



21
votes

Utiliser la même source que DAV:

# delete all leading blank lines at top of file
sed '/./,$!d'


2 commentaires

Parfait!! Merci un tas !! Le lien sera très utile dans le futur aussi.


Pour que cela fonctionne avec les fichiers Java ~ 30k, je devais traiter, j'ai couru "trouver" -Name '* .java' | xargs -n 1 sed -e '/. /./. /. -i .bak " - Le "-N 1" était nécessaire pour que SED fonctionne correctement



0
votes

Je ne suis pas sûr de la façon dont votre message de fortune ressemble réellement, mais voici une illustration xxx

ou vous pouvez utiliser awk xxx


0 commentaires