Comment obtenir les n premiers caractères dans unix fichier de données
J'essaie d'obtenir les 22 premiers caractères d'un unix fichier de données.Voici mes données ressemble comme ci-dessous.
12 premiers caractères de la colonne 1 et 10 caractères est la 2ème colonne.
000000000001199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
000000000002199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
000000000003199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
000000000004199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
000000000005199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
000000000006199998000180000 DUMMY RAG # MFR NOT ST 1999980 ZZ- 0 0 0ZZ-
- Voulez-vous les 22 premiers caractères du fichier, ou les 22 premiers caractères de chaque ligne? Vous devez modifier la question si vous souhaitez que les données de chaque ligne. Comme demandé,
dd
est l'outil que vous voulez obtenir les 22 premiers caractères du fichier.
Vous devez vous connecter pour publier un commentaire.
Avec
cut
:Si je comprends la deuxième exigence que vous voulez diviser les 22 premiers caractères: les deux colonnes de longueur 10 et 12.
sed
est le meilleur choix pour ce:n
caractères. Est-il un moyen d'éviter de lire dans le fichier entier?head
de lire les n premières lignes seulement, par exemple, de limiter les 20 premières lignes:head -n 20 file | cut -c-22
sudo_O a fourni une belle coupe et sed solution, j'ai juste ajouté un awk one-liner:
avec vide char (cela dépend de votre exigence, vous souhaitez ignorer les espaces ou que vous souhaitez inclure et de les compter dans votre sortie)
si les espaces vides doivent être comptés et affichés dans la sortie ainsi: (vous n'avez pas à changer le cmd ci-dessus)
si vous souhaitez ignorer ces espaces:
(quick and dirty)