Я пытаюсь сделать эту очень простую программу bash, которая должна выполнять следующие операции:
изменяйте файл Java n раз: каждый раз, когда мне нужно изменить одно слово в одной строке файла (строка 11), я знаю, что есть следующая команда, которая заменяет одно слово в определенной строке программы другой. :
sed -i "11s/1/$n/" IC_masslessPlanetesimal.java
если я выполняю вышеуказанную команду, я могу изменить только один раз файл file.java, потому что во второй итерации цикла for у меня не то же самое слово, что и в первой итерации: я начинаю с 1 в строке 11, чем в первой итерации Я изменяю с помощью
$n
(что равно 2), но теперь, КАК я могу изменить командуsed
чтобы снова изменить слово (которое теперь равно 2), чтобы иметь, например, 3 в 11-й строке?скомпилируйте файл java: все нормально;
изменить файл .txt: опять та же проблема, что и в 1) Я хочу изменить слово в строке итеративно с циклом for или что-то в этом роде;
передать его в исполняемый файл: это вторая проблема. Я изменил файл param.txt и теперь хочу прочитать его в исполняемый файл с именем exec. Если я делаю это из терминала, я должен запустить exec. Программа с командой
./exec
и после этого я должен написать с экрана имя файла .txt. Теперь можно ли запустить программу из bash и прочитать вместе с ней файл file.txt? Я пытаюсь с:sed -i "13s/Zero/$n/" param.txt ./exec < param.txt
этот сценарий должен изменить строку 13 с нуля на $ n в param.txt, как я могу запустить exec программу с помощью команды ./exec
с конкретным файлом param.txt.
#!/bin/bash
n=0
for n in "2" "3"
do
sed -i "11s/1/$n/" IC_masslessPlanetesimal.java
javac IC_masslessPlanetesimal.java
java IC_masslessPlanetesimal
sed -i "13s/Zero/$n/" param.txt
./exec < param.txt
done
большое спасибо !!!