Я пытаюсь записать сценарий оболочки, который ищет в файле, указанном как аргумент 1$ для regex, и пишет найденный подшаблон в переменную, которую я могу затем использовать.
скажем, мой сценарий называют 'dosth.sh', и у меня есть файл 'plot.gp' со строкой
set output 'test.tex'
Если я теперь выполняюсь 'dosth.sh plot.gp' сценарий, должен извлечь 'test.tex' из plot.gp и записать это в переменную.
Как это возможно с grep или другими?
Спасибо и наилучшие пожелания, Jan Oliver
value=`cat $1 | grep -e 'set output' | cut -d'"' -f 2`
использование "вместо", и строка выше выполняет свою работу.
Вы можете попробовать что-нибудь вроде
value=`grep '^set output' $x | cut -d' ' -f 3`
(обратите внимание, что вы сохраните кавычки в $ value
dosth.sh:
#!/bin/bash
VALUE=`cat $1 | grep <your regexp here>`
echo $VALUE
это можно использовать как:
$ ./dosth.sh a.txt
затем найденные строки сохраняются в переменной VALUE
Вы также можете передать regexp через некоторые аргументы (скрипт запрашивает имя файла):
dosth.sh:
#!/bin/bash
echo -e "Which file do you want to grep?"
read FILENAME
args=("$@")
VALUE=`cat $FILENAME | grep $args`
echo $VALUE
что можно использовать как:
$ ./dosth.sh here comes my * pattern
Возможно, эта ссылка будет вам полезна: Link
значение = $ (awk -F "'"' $ 1 == "установить вывод" {print $ 2} 'somefile)
variable=$(sed -n '/^set output/ s/[^\x27]*\x27\([^\x27]*\)\x27/\1/p' "$1")