2011-01-21 1 views
1

Хорошо, я ищу, чтобы сделать это. Я пытаюсь написать сценарий, который попросит пользователя, что он хочет, используя этот код, я могу сделать это, я записываю их вход.Shell Script читайте ввод и скопируйте и вставьте

#!/bin/bash 

read inputline 
what="$inputline" 
echo $what 

то у меня есть еще один файл, который помещается еще где на этом пути/системах/и т.д./99oc, которая выглядит следующим образом

Некоторого текст еще несколько текста (хотим ввод данных пользователя вставленного здесь) больше текста больше текста

Таким образом, сценарий должен иметь возможность принимать входные данные и вставлять их между текстом в другом документе. Это возможно? альтернативы?

Спасибо за любую помощь

Редактировать Да жаль здесь каждая строка во втором файле, которые будут скопированы в

эхо «1„на вход поступает сюда“»>/Proc/разгон/mpu_opps

эхо "2 'на вход поступает сюда'">/Proc/разгон/mpu_opps

эхо "3 'вход здесь идет">/Proc/разгон/mpu_opps

эхо "4 'вход здесь идет">/Proc/разгон/mpu_opps

эхо "5' вход здесь идет">/Proc/разгон/mpu_opps

эхо «вход 6» здесь идет «»>/Proc/разгон/mpu_opps

где „вход идет здесь“ с вне „“, где вход должен быть вставлен

также только что узнал, что я могу сделать ср $, что

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

ответ

0

Дайте этому попытку:

#!/bin/bash 

read -r -p "Please enter some text" inputline 
# attempt to sanitize the input by escaping some special characters 
printf -v inputline '%q' "$inputline" 
# insert the user input before the second quotation mark on each line in the file 
sed -i "/^echo.*mpu_opps$/s/\"/$inputline\"/2 /system/etc/99oc 

Команда sed сделает изменения в файл на месте (для GNU sed). Если вы используете OS X, требуется расширение для резервного копирования. Если вы используете версию sed, которая не имеет -i, вам необходимо перенаправить вывод во временный файл и переименовать его.

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

0

Да, это возможно с чем-то вроде sed или awk, но нам нужно было что-то зайти, чтобы знать, где должно идти (want user input pasted here). I.e., всегда будет вставлен между 6-м и 7-м словом в строке, начинающейся с «Some» и т. Д.

0

Можно легко сделать с sed.

Независимо от операции (вставка, добавление или обмен) используется синтаксис будет остается прежним:

sed '{/pattern/|/regexp/|n}{i|a|c}<text to be iserted>' file 

Проверить http://en.kioskea.net/faq/1454-inserting-text-in-a-file для получения дополнительной помощи.

Смежные вопросы