Shell Script для чтения ввода и копирования и вставки - PullRequest
1 голос
/ 21 января 2011

Хорошо, я пытаюсь сделать это, я пытаюсь написать скрипт, который спросит пользователя, что он хочет, используя этот код.

#!/bin/bash

read inputline
what="$inputline"
echo $what

Затем у меня есть другой файл, который находится в другом месте, по этому пути / system / etc / 99oc, который выглядит так

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

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

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

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

echo "1 'ввод идет сюда" "/ proc / overclock / mpu_opps

echo "2 'ввод идет сюда" "/ proc / overclock / mpu_opps

echo "3 'ввод идет сюда" "/ proc / overclock / mpu_opps

echo "4 'здесь идет ввод'"> / proc / overclock / mpu_opps

echo "5 'ввод идет сюда" "/ proc / overclock / mpu_opps

echo "6 'ввод идет сюда" "/ proc / overclock / mpu_opps

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

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

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

Ответы [ 3 ]

0 голосов
/ 21 января 2011

Может быть легко сделано с помощью sed.

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

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

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

0 голосов
/ 21 января 2011

Попробуйте:

#!/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 голосов
/ 21 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...