powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / regexp substring
16 сообщений из 16, страница 1 из 1
regexp substring
    #38976039
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите пожалуйста каким регулярным выражением можно обработать строку след вида:
На входе например строка вида:
echo /home/user/my file 1_abc_12345.txt

На выходе нужно получить строку:
1_abc
...
Рейтинг: 0 / 0
regexp substring
    #38976470
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На выходе нужно получить строку:
1_abc_12345
может кто-нибудь помочь как в linux применить регэксп?
...
Рейтинг: 0 / 0
regexp substring
    #38976476
Фотография bga83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Marishka25,

для начала правило по котрому обработать надо неплохо было бы озвучить
...
Рейтинг: 0 / 0
regexp substring
    #38976489
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
echo my_file 1_abc_12345.txt | grep "1_abc_12345"
...
Рейтинг: 0 / 0
regexp substring
    #38976523
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyMarishka25,
echo my_file 1_abc_12345.txt | grep "1_abc_12345"
На выходе получаем ту же строку, что и передали т.е. my_file 1_abc_12345.txt а нужно выводить подстроку.

Т.е. из строки '/home/user/my file 1_abc_12345.txt' вывести подстроку 1_abc_12345
...
Рейтинг: 0 / 0
regexp substring
    #38976570
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
echo `expr "/home/user/my file 1_abc_12345.txt" : '.*\(1_abc_12345\)'`
...
Рейтинг: 0 / 0
regexp substring
    #38976613
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyMarishka25,
echo `expr "/home/user/my file 1_abc_12345.txt" : '.*\(1_abc_12345\)'`
Все бы хорошо, да вот только забыла уточнить, что данная часть строки "1_abc_12345" может изменяться, а /home/user/my file и .txt - постоянные.
...
Рейтинг: 0 / 0
regexp substring
    #38976621
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
так меняйте, что мешает
...
Рейтинг: 0 / 0
regexp substring
    #38976631
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyMarishka25,
так меняйте, что мешает
так мне нужно ее и получить на выходе, зная только что она между двух частей строки находится.
...
Рейтинг: 0 / 0
regexp substring
    #38976636
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
подумайте и опишите нормально задачу, а то нифига не понятно
...
Рейтинг: 0 / 0
regexp substring
    #38976642
Marishka25
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kunaksergeyMarishka25,
подумайте и опишите нормально задачу, а то нифига не понятно
есть строка вида: "/home/user/my file ххххххххх.txt" , в которой постоянная часть это "/home/user/my file " и ".txt" подстрока между - "ххххххххх" изменяется. нужно имея всю строку целиком вывести только "ххххххххх"
...
Рейтинг: 0 / 0
regexp substring
    #38976672
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25kunaksergeyMarishka25,
так меняйте, что мешает
так мне нужно ее и получить на выходе, зная только что она между двух частей строки находится.
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
sed 's/.* //;s/\(.*\)\..*/\1/' <<<"
/home/user/my file 1_single_extension_12345.txt
/home/user/my file 10_empty_extension_43961.
/home/user/my log 11_double_extension_432.log.gz
/home/user/my 100_no_extension_12333333
/home/user/NOTmine doc 101_ye_200.doc
/root/root's file 110_azzz_45445123112.dat
/home/us er/myfile_WHITESPACE_ONLY_IN_PATH_1.wtf1
/home/user/myfile_NO_WHITESPACE_2.wtf2
"
...
Рейтинг: 0 / 0
regexp substring
    #38976673
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
echo `expr "/home/user/my file 1_abc_123455.txt.txt" : '^.*file\s\(.*\)\.txt$'`
...
Рейтинг: 0 / 0
regexp substring
    #38976674
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
echo parse value '/abc/def/xyz-проба.txt' with '/abc/def/xyz' a '.txt';say a|rexx
-проба
P.S. С точностью до национальных особенностей команды echo под виндой
...
Рейтинг: 0 / 0
regexp substring
    #38976690
kunaksergey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

если на все строки:
a="
/home/user/my file 1_single_extension_12345.txt
/home/user/my file 10_empty_extension_43961.
/home/user/my log 11_double_extension_432.log.gz
/home/user/my 100_no_extension_12333333
/home/user/NOTmine doc 101_ye_200.doc
/root/root's file 110_azzz_45445123112.dat
/home/us er/myfile_WHITESPACE_ONLY_IN_PATH_1.wtf1
/home/user/myfile_NO_WHITESPACE_2.wtf2
"

echo `expr "$a" : '^.*file\s\(.*\)\.txt'`
...
Рейтинг: 0 / 0
regexp substring
    #38976692
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marishka25,
> есть строка вида: "/home/user/my file ххххххххх.txt" , в которой постоянная часть это "/home/user/my file " и ".txt"
> подстрока между - "ххххххххх" изменяется. нужно имея всю строку целиком вывести только "ххххххххх"

Если префикс и суффикс _действительно_ не меняются, то можно и не заморачиваться ругулярными выражениями
Код: powershell
1.
2.
3.
_string='/home/user/my file 1хххххххх.txt'; 
echo ${_string:19:-4}; 
unset -v _string;
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / regexp substring
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]