LinuxForum.Fans
Тема

Прошу срочно помогите. Вытащить пароль с файла

Автор: XliN 32 сообщений 7756 просмотров
#385589

Как из файла вытащить пароль? накидайте седом. Горю

есть файл например 123.txt В нем несколько строчек но есть вот такая ISC_PASSWORD="пароль"

Как мне вытащить пароль? что бы на выходе только он был? Что бы я потом этот односторок в скрипт ставил passw="sedом вытаскиваем пароль"

#385593
text
/tmp/ cat 123.txt 
qwert 123
qwer ISC_PASSWORD="пароль" qwert123
123 qwerty
/tmp/ sed '/ISC_PASSWORD/!d;s/\(.*ISC_PASSWORD=\"\)\(.*\)\(".*\)/\2/' 123.txt
пароль
#385630
text
$ grep -Po "ISC_PASSWORD=\"\K.+(?=\")" 123.txt
#385633

Короче я понял, где у меня пробел в знаниях. Спасибо всем.

#385651

Ещё вариант без sed. По крайней мере он наглядный и понятный:

text
grep ISC_PASSWORD 123.txt | cut  -d "\"" -f2
#385665

Вставлю свои 5 копеек с любимым awk=)

text
grep ISC_PASSWORD 123.txt | awk -F'=' '{print $2}'
#385666

tmp13, так кавычки остаются.

#385668
tmp13 написал:
Вставлю свои 5 копеек с любимым awk=)
text
grep ISC_PASSWORD 123.txt | awk -F'=' '{print $2}'

text

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 не нужен.

#385670

Все эти «изыскания» хороши, если формат целевого файла известен и постоянен. Так, к примеру, ни один из способов не сработает с таким файлом:

text
qwert 123
"qwer" asdf ISC_PASSWORD="пароль" qwert123 "abs"
123 qwerty
#385672
"Lupo Alberto" написал:
Так, к примеру, ни один из способов не сработает с таким файлом:

Чуть регулярку подправить ;-)

text
$ grep -Po "ISC_PASSWORD=\"\K.+?(?=\")" 123.txt
#385677
"-=Serj=-" написал:
Чуть регулярку подправить ;-)

Это понятно.

P.S. В zsh не работает ]:->

#385680
"Lupo Alberto" написал:
Это понятно.

Я имел в виду, что теперь она правильная и универсальная. Кажись =D.

"Lupo Alberto" написал:
P.S. В zsh не работает

Хм, а так?

text
$ grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt
#385682
-=Serj=- написал:

Хм, а так?
text
$ grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt

[console]grep -Po 'ISC_PASSWORD="\K.+?(?=")' 123.txt
grep: заданы конфликтующие образцы[/console]

#385683
"-=Serj=-" написал:
Я имел в виду, что теперь она правильная и универсальная. Кажись =D.

перловые регэкспы — это ни как не «универсально» — исключительно гнутое расширение...

#385684
"-=Serj=-" написал:
Я имел в виду, что теперь она правильная и универсальная. Кажись =D.

«Ален ноби, ностра алис! Что означает - если один человек построил, другой завсегда разобрать может!» ©

Если в пароле есть знак «"», то не работает *CRAZY*

#385685
"Lupo Alberto" написал:
Если в пароле есть знак «"», то не работает bm

Я, по-моему, сумел нарисовать краба.

#385688
"Fat-Zer" написал:
перловые регэкспы — это ни как не «универсально» — исключительно гнутое расширение...

Я про то, что регулярка универсальна по отношению к формату файла.
Lupo Alberto, последний вариант..

text
$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\")' 123.txt
#385690
"-=Serj=-" написал:
последний вариант..
"Lupo Alberto" написал:
Если в пароле есть знак «"», то не работает
#385691
text
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
text

[lupo@asus-x201e tmp]$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\")' 123.txt
aaa
#385692
"Lupo Alberto" написал:
Если в пароле есть знак «"», то не работает
text
$ grep -Po 'ISC_PASSWORD=\"\K.+?(?=\" )' 123.txt

:P

Войдите или зарегистрируйтесь, чтобы ответить.