Programmation shell en bash

Tanaka24 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Autant le dire tout de suite je suis assez débutant.

J'ai un petit problème avec un petit script que j'essaye de faire tourner. En gros j'ai un fichier texte que j'ai séparer en trois partie et j'aimerais que le script fasse:

Partie 1
ajout d'une ligne
Partie 2
ajout d'une ligne
Partie 3

J'ai un fichier 1Valuea0 qui contient des données (sur une ligne) et j'aimerais qu'il prennent à chaque fois la donnée de la 46 colonnes puis la 48ième colonnes etc.. et la mette dans un fichier temp avec juste la valeur de la 46 (ou 48 etc) colonnes.

Or mon problème est que le fichier temp donne une copie de TOUT ce qu'il y a dans 1Valuea0. Ce que je ne veux pas.

Comment faire?

[cpp]#!/bin/bash
#
#
for X in 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100; do
cp template1 input1
awk < 1Valuea0 '{ print $X }' > temp
echo -n "calc a0 " >> input1
cat temp >> input1
cat template2 >> input1
echo "alloy "$X >> input1
cat template3 >> input1
../dmk.x < input1 > output
cp output output.$X
cp input1 input1.$X
done
/cpp


D'avance merci.
A voir également:

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
pour imprimer le nième champs avec awk :
awk -v x=$X '{print $(x)}' < 1Valuea0 > temp
0