|
|
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
помогите, пож., кто сколько может.. нужно получить имя файла через basename. Имя файла c путями получаю из find. Покажу на примере имя в переменной.. itc@rx8640h$ tt=/test/my_usr/tmp_1/SEP_20130101.lst itc@rx8640h$ echo $tt /test/my_usr/tmp_1/SEP_20130101.lst itc@rx8640h$ itc@rx8640h$ basename $tt SEP_20130101.lst itc@rx8640h$ echo $tt | awk '{ print $0 }' /test/my_usr/tmp_1/SEP_20130101.lst itc@rx8640h$ itc@rx8640h$ echo $tt | awk '{ print (basename $0) }' /test/my_usr/tmp_1/SEP_20130101.lst itc@rx8640h$ уверен, что-то с синтаксисом , но не могу найти в инете, как правильно написать.. заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 19:57 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
awk это отдельный язык программирования, он воспринимает ваш basename как переменную, и принтит ее пустую. можно из awk вызвать команду которая выполнит системную команду, но в этом случае это слишком уже. глупый вариант echo $tt |basename `awk '{ print $0 }'` хороший вариант find -name '*.sh' -printf "%P\n" find -name '*.sh' -exec basename {} \; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 20:47 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
Как-то так (не знаю, подойдет ли): Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. RTFM PS: а find может сразу и -exec command делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 20:51 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
задача скопировать файлы с определенной маской - если каталог поиска не содержит "_" , то копируется нормально. find /test/my_usr/tmp_1/ -name "*" -type f | awk '{if(substr($0,index($0, "_")+1) ~/^20131031/) print $0}' | xargs -i cp {} . решить можно используя rindex. но у меня его почему-то нет.. поэтому хотел в IF вставить имя файла через basename, но как-то не выходит - find /test/my_usr/tmp_1/ -name "*" -type f | awk '{if(substr((basename $(echo $0 | awk '{ print $0 }')), index($0, "_")+1) ~/^20131031/) print $0}'| head ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 10:40 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
ой, в index-е $0 соответственно тоже через basename.. кароче, написанное месиво сваливается с ошибкой :/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 10:43 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
я не понял что нужно, пример покажите файнд умеет регулярные выражения find -regex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 16:36 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
в каталоге /test/my_usr/tmp_1/ лежат файлы с именами типа PPP_2013010123_123.201301010111665.txt Нужно копировать файлы по маске, типа, после первого подчеркивания в имени файла строка начинается на блаблабла.. - if(substr($0,index($0, "_")+1) ~/^20131031/) но не могу выдернуть имя файла в if. частный случай, каталог без подчеркивания. команда ниже нормально работает - find /test/usr/tmp/ -name "*" -type f | awk '{if(substr($0,index($0, "_")+1) ~ /^20130101/) print $0}' | xargs -i cp {} . если в имени каталога есть подчеркивание, то по index выбирается не та подстрока. Вкрячить в if basename не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 19:23 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
А если "поиск" пустить через "цикл в цикле": - Перебрать все каталоги и подкаталоги, среди которых: - среди файлов каталога "при наличии подчеркивания" у файла или др. условии уже выполнить то, что требуется ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 01:58 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
нее, это левой рукой правое ухо.. все должно быть элементарно, я так думаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 09:13 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
ну дык может сразу искать по маске и копировать? или там еще что? find /test/usr/tmp/ -name "<маска>" -type f -exec cp {} . \; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 11:51 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
под маску *_20130101 может попась файл PPP_20130104123_123_201301010111665.txt маска должна быть после первого подчеркивания.. Собственно то, чего я и не знаю как сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:33 |
|
||
|
basename не работает
|
|||
|---|---|---|---|
|
#18+
авторфайнд умеет регулярные выражения find -regex Код: powershell 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=25&fpage=47&tid=1482741]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 9ms |
| total: | 138ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...