0
votes

Comment utiliser Grep et mettre les résultats sur différentes colonnes, mais sur les mêmes lignes

Ici, j'ai un exemple d'entrée que je souhaite utiliser pour générer une sortie spécifique.

C   1.2840   -1.6830    1.4460
C   1.5660   -0.8240    0.2163
C   0.5584    0.2995   -0.0595
C  -0.8805   -0.1514   -0.2412
O  -1.6205   -0.3785    0.8741
C  -1.4770    0.3883    2.0816
O  -1.3875   -0.2971   -1.3503
C  -2.0561    1.7788    1.8987
O   1.8097   -1.5560   -0.8246
N   2.8979   -0.2777    0.3226
H   1.2555   -1.0711    2.3543
H   0.3266   -2.2122    1.3666
H   2.0525   -2.4514    1.6103
H   0.8193    0.8445   -0.9811
H   0.6122    1.0718    0.7144
H  -0.4400    0.4244    2.4204
H  -2.0425   -0.1400    2.8563
H  -3.0985    1.7209    1.5688
H  -1.5098    2.3359    1.1312
H  -2.0131    2.3425    2.8349
H   3.1017    0.3084    1.1257
H   3.4860   -1.1139    0.2817
H   3.0712    0.1760   -0.5761


4 commentaires

Pouvez-vous montrer un petit exemple de la sortie que vous voulez?


Utilisez awk pour cela. Vous pouvez tester une colonne spécifique et réorganiser les colonnes dans les résultats.


grep est destiné à imprimer uniquement les lignes correspondant à un motif, mais il semble que votre résultat a toutes les mêmes lignes que l'entrée, pourquoi pensez-vous grep est la bonne chose?


Bienvenue dans le débordement de pile. Donc, une page de questions et de réponses pour les programmeurs professionnels et enthousiastes. Ajoutez votre propre code à votre question. Vous devriez montrer au moins la quantité de recherches que vous avez mises en résolution de cette question vous-même.


3 Réponses :


2
votes
C 1.2840 -1.6830 1.4460
C 1.5660 -0.8240 0.2163
C 0.5584 0.2995 -0.0595
C -0.8805 -0.1514 -0.2412
O -1.6205 -0.3785 0.8741
C -1.4770 0.3883 2.0816
O -1.3875 -0.2971 -1.3503
C -2.0561 1.7788 1.8987
O 1.8097 -1.5560 -0.8246
N 2.8979 -0.2777 0.3226
H 1.2555 -1.0711 2.3543
H 0.3266 -2.2122 1.3666
H 2.0525 -2.4514 1.6103
H 0.8193 0.8445 -0.9811
H 0.6122 1.0718 0.7144
H -0.4400 0.4244 2.4204
H -2.0425 -0.1400 2.8563
H -3.0985 1.7209 1.5688
H -1.5098 2.3359 1.1312
H -2.0131 2.3425 2.8349
H 3.1017 0.3084 1.1257
H 3.4860 -1.1139 0.2817
H 3.0712 0.1760 -0.5761


0 commentaires

1
votes

avec SED, vous pouvez obtenir le dernier caractère et le mettre d'abord

C  1.2840   -1.6830    1.4460 
C  1.5660   -0.8240    0.2163 
C  0.5584    0.2995   -0.0595 
C -0.8805   -0.1514   -0.2412 
O -1.6205   -0.3785    0.8741 
C -1.4770    0.3883    2.0816 
O -1.3875   -0.2971   -1.3503 
C -2.0561    1.7788    1.8987 
O  1.8097   -1.5560   -0.8246 
N  2.8979   -0.2777    0.3226 
H  1.2555   -1.0711    2.3543 
H  0.3266   -2.2122    1.3666 
H  2.0525   -2.4514    1.6103 
H  0.8193    0.8445   -0.9811 
H  0.6122    1.0718    0.7144 
H -0.4400    0.4244    2.4204 
H -2.0425   -0.1400    2.8563 
H -3.0985    1.7209    1.5688 
H -1.5098    2.3359    1.1312 
H -2.0131    2.3425    2.8349 
H  3.1017    0.3084    1.1257 
H  3.4860   -1.1139    0.2817 
H  3.0712    0.1760   -0.5761 


0 commentaires

2
votes

Vous pouvez utiliser awk code> avec printf code> pour obtenir les colonnes alignées: xxx pré>

qui donne: p>

C   1.2840   -1.6830    1.4460
C   1.5660   -0.8240    0.2163
C   0.5584    0.2995   -0.0595
C  -0.8805   -0.1514   -0.2412
O  -1.6205   -0.3785    0.8741
C  -1.4770    0.3883    2.0816
O  -1.3875   -0.2971   -1.3503
C  -2.0561    1.7788    1.8987
O   1.8097   -1.5560   -0.8246
N   2.8979   -0.2777    0.3226
H   1.2555   -1.0711    2.3543
H   0.3266   -2.2122    1.3666
H   2.0525   -2.4514    1.6103
H   0.8193    0.8445   -0.9811
H   0.6122    1.0718    0.7144
H  -0.4400    0.4244    2.4204
H  -2.0425   -0.1400    2.8563
H  -3.0985    1.7209    1.5688
H  -1.5098    2.3359    1.1312
H  -2.0131    2.3425    2.8349
H   3.1017    0.3084    1.1257
H   3.4860   -1.1139    0.2817
H   3.0712    0.1760   -0.5761


0 commentaires