2014-12-10 2 views
-1

мне нужно какое-то направление на Баше, который будет принимать список слов и добавляемый каждое слово со словами из другого списка:прилагая строки в каждой строке и сделать новый файл

Списка 1

1 
2 
3 

Список 2

! 
@ 
# 

Новые списки (А)

1! 
2! 
3! 

(Б)

[email protected] 
[email protected] 
[email protected] 

(С)

3! 
[email protected] 
3# 

Как я это начал: (. Я полагаю, я должен отметить, я сдалась, имеющий два входных файлов я пошел с функцией счетчика вместо)

#!/bash/bin 
CT=1000 
LIMIT=10000 
while [ "$CT" -lt "$LIMIT" ] 
do 
    echo $CT 
    sed -e 's/$/'$CT'/' -i 'INPUTFILE.txt' 
let "CT +=1" 
done 
+0

Попытайтесь включить код в свой вопрос, и если он не работает, спросите, почему – mohsaied

+0

. Мой вывод обычно либо просто делает список из 1000-10000, либо добавляет $ CT для каждого line в моем файле – Schmorrison

ответ

0

Предполагая, что вы хотите, пронумерованных выходных файлов, попробуйте запустить счетчик внутри петля.

Обратите внимание, что sed -i будет манипулировать первоначальный входной файл на месте. Вы не хотите этого; вы хотите получить результат в новом файле. Поэтому мы удаляем опцию -i и используем функцию перенаправления оболочки, чтобы указать, куда отправлять стандартный вывод.

Если вы хотите перечислить имена файлов назначения, это немного сложнее. Одним из решений является добавление имени файла назначения для суффикса файла

!  A 
@  B 
#  C 

затем прочитать оба маркера в цикле:

while read -r suffix outputfile; do 
    sed "s/$/$suffix/" INPUTFILE.txt >"$outputfile" 
done <SUFFIXLIST.txt 

или если вы хотите, чтобы вставить эту информацию в сценарии, используйте здесь документ:

while read -r suffix outputfile; do 
    sed "s/$/$suffix/" INPUTFILE.txt >"$outputfile" 
done <<____HERE 
    !  A 
    @  B 
    #  C 
____HERE 

(только Bash-специфический конструкт let для арифметических операций, поэтому последние два сценария, которые не используют, которые могут быть запущены с /bin/sh вместо Bash.)

+0

Amazing ... Спасибо, много. Я только что начал обманывать компьютеры за пределами графического интерфейса, которые так ценились. – Schmorrison