@AirFlare

Как переписать данный кусок кода под BASH?

Доброй ночи! Имеются два куска кода:
1.
FOR %%F IN (assets lib libs unknown) DO (
	if exist "_INPUT_APK\%~1\%%F" (
		FOR /f "tokens=1* delims= " %%a IN ('sfk list -hidden -quiet -quot -relnames "_INPUT_APK\%~1\%%F" -sincedir "_INPUT_APK\%~1\_backup\%%F" 2^>nul') DO (
			if /I %%F==assets (call :copy2 "_INPUT_APK\%~1\assets\%%~b" "_INPUT_APK\%~1\_backup\upd\0\assets\%%~b")
			if /I %%F==lib (call :copy2 "_INPUT_APK\%~1\lib\%%~b" "_INPUT_APK\%~1\_backup\upd\7\lib\%%~b")
			if /I %%F==libs (call :copy2 "_INPUT_APK\%~1\libs\%%~b" "_INPUT_APK\%~1\_backup\upd\7\libs\%%~b")
			if /I %%F==unknown (call :copy2 "_INPUT_APK\%~1\unknown\%%~b" "_INPUT_APK\%~1\_backup\upd\0\%%~b")
		)

2.
if %delete_resources_in_expert_mode%==ON (
		FOR /f "tokens=1* delims= " %%a IN ('sfk list -hidden -quiet -quot -relnames "_INPUT_APK\%~1\_backup\%%F" -sinceadd "_INPUT_APK\%~1\%%F" 2^>nul') DO (
				if /I %%F==assets (echo assets\%%~b>>"_INPUT_APK\%~1\_backup\upd\delete.list")
				if /I %%F==lib (echo lib\%%~b>>"_INPUT_APK\%~1\_backup\upd\delete.list")
				if /I %%F==libs (echo libs\%%~b>>"_INPUT_APK\%~1\_backup\upd\delete.list")
				if /I %%F==unknown (echo %%~b>>"_INPUT_APK\%~1\_backup\upd\delete.list")
			)
		)

Никак не может прийти мысль в голову какими функциями в BASH реализовать это все. Сильно не пинайте, знаю что многого хочу, однако никаких идей так на ум не пришло... Разве что использовать цикл, но как...
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 4
hint000
@hint000
у админа три руки
Попробуйте собрать конструкцию из find и xargs, в этом случае цикл в явном виде не требуется.
примеров навалом: https://www.google.com/search?q=find+xargs
Если этого окажется недостаточно, то можно добавить awk, будет сложнее, но возможности широчайшие.
Ответ написан
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
Взять и переписать. Операторы циклов, условные, сравнения, разбора строк в bash есть :)
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Может вам вообще не нужно городить эти все циклы, а просто почитать справку по rsync и сделать все рсинком?
Он может и папки сравнить и скопировать и файл сгенерировать.
Ответ написан
sotvm
@sotvm
Умный поймёт , а дураку и так всё равно.
на пальцах объясни , что именно надо,
думаю это решае решает finde+ xargs{}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы