Programmation shell en bash

Fermé
Tanaka24 Messages postés 1 Date d'inscription samedi 3 octobre 2009 Statut Membre Dernière intervention 3 octobre 2009 - 3 oct. 2009 à 18:38
dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 - 4 oct. 2009 à 08:37
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 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
4 oct. 2009 à 08:37
hello
pour imprimer le nième champs avec awk :
awk -v x=$X '{print $(x)}' < 1Valuea0 > temp
0