использование awk внутри цикла для замены поля - PullRequest
1 голос
/ 06 февраля 2012

Я написал скрипт, который находит значение хеша из словаря и выводит его в виде «word: md5sum» для каждого слова.Затем у меня есть файл имен, который я хотел бы использовать для размещения каждого имени, за которым следовало бы каждое значение хеша, т.е.,Боб: word1hash

и так далее.Все отлично работает но не могу разобраться с заменой.Вот мой сценарий.

$#!/bin/bash
#/etc/dictionaries-common/words
cat words.txt | while read line; do echo -n "$line:" >> dbHashFile.txt  
echo "$line" | md5sum | sed 's/[ ]-//g' >> dbHashFile.txt; done
cat users.txt | while read name
do
cat dbHashFile.txt >> nameHash.txt;
awk '{$1="$name"}' nameHash.txt;
cat nameHash.txt >> dbHash.txt;
done

строка

    $awk '{$1="$name"}' nameHash.txt;

- это место, где я пытаюсь выполнить замену.

спасибо за помощь

1 Ответ

2 голосов
/ 06 февраля 2012

Попробуйте заменить все содержимое последнего цикла (cat s и awk) на:

awk -v name="$name" -F ':' '{ print name ":" $2 }' dbHashFile.txt >>dbHash.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...