Как из файла вытащить пароль? накидайте седом. Горю
есть файл например 123.txt В нем несколько строчек но есть вот такая ISC_PASSWORD="пароль"
Как мне вытащить пароль? что бы на выходе только он был? Что бы я потом этот односторок в скрипт ставил passw="sedом вытаскиваем пароль"
Прошу срочно помогите. Вытащить пароль с файла
/tmp/ cat 123.txt
qwert 123
qwer ISC_PASSWORD="пароль" qwert123
123 qwerty
/tmp/ sed '/ISC_PASSWORD/!d;s/\(.*ISC_PASSWORD=\"\)\(.*\)\(".*\)/\2/' 123.txt
пароль$ grep -Po "ISC_PASSWORD=\"\K.+(?=\")" 123.txtКороче я понял, где у меня пробел в знаниях. Спасибо всем.
Ещё вариант без sed. По крайней мере он наглядный и понятный:
grep ISC_PASSWORD 123.txt | cut -d "\"" -f2Вставлю свои 5 копеек с любимым awk=)
grep ISC_PASSWORD 123.txt | awk -F'=' '{print $2}'tmp13, так кавычки остаются.
Вставлю свои 5 копеек с любимым awk=) textgrep ISC_PASSWORD 123.txt | awk -F'=' '{print $2}'
tmp/ cat 123.txt
qwert 123
qwer ISC_PASSWORD="пароль" qwert123
123 qwerty
/tmp/ grep ISC_PASSWORD 123.txt | awk -F'=' '{print $2}'
"пароль" qwert123
P.S. awk сам «умеет» искать по шаблону, grep не нужен.
Все эти «изыскания» хороши, если формат целевого файла известен и постоянен. Так, к примеру, ни один из способов не сработает с таким файлом:
qwert 123
"qwer" asdf ISC_PASSWORD="пароль" qwert123 "abs"
123 qwertyТак, к примеру, ни один из способов не сработает с таким файлом:
Чуть регулярку подправить ;-)
$ grep -Po "ISC_PASSWORD=\"\K.+?(?=\")" 123.txtЧуть регулярку подправить ;-)
Это понятно.
P.S. В zsh не работает ]:->
Это понятно.
Я имел в виду, что теперь она правильная и универсальная. Кажись =D.
P.S. В zsh не работает
Хм, а так?
$ grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt
Хм, а так? text$ grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt
[console]grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt
grep: заданы конфликтующие образцы[/console]
Я имел в виду, что теперь она правильная и универсальная. Кажись =D.
перловые регэкспы — это ни как не «универсально» — исключительно гнутое расширение...
Я имел в виду, что теперь она правильная и универсальная. Кажись =D.
«Ален ноби, ностра алис! Что означает - если один человек построил, другой завсегда разобрать может!» ©
Если в пароле есть знак «"», то не работает *CRAZY*
Если в пароле есть знак «"», то не работает bm
Я, по-моему, сумел нарисовать краба.
перловые регэкспы — это ни как не «универсально» — исключительно гнутое расширение...
Я про то, что регулярка универсальна по отношению к формату файла.
Lupo Alberto, последний вариант..
$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\")' 123.txtпоследний вариант..
Если в пароле есть знак «"», то не работает
lupo@asus-x201e tmp]$ cat 123.txt
qwert 123
asd ISC_PASSWORD="aaa"bbb" "dsa"
123 qwerty
[lupo@asus-x201e tmp]$ sed '/ISC_PASSWORD/!d;s/\(.*ISC_PASSWORD=\"\)\(.*\)\("\ .*\)/\2/' 123.txt
aaa"bbb
[lupo@asus-x201e tmp]$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\")' 123.txt
aaa
Если в пароле есть знак «"», то не работает
$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\" )' 123.txt:P