I have the following Windows batch script (.bat file). I would like to convert this into a Linux shell script. Please help...
@echo off
setlocal
for /f "tokens=2-7 delims=_.-" %%A in ('dir /B TACOS_*') do (
setlocal enabledelayedexpansion
call :getmonth %%B
ren TACOS*_*%%A-%%B-%%C*_*%%D-%%E-%%F_UTC.csv TACOS_%%A!mon!%%C_%%D%%E%%F.csv
endlocal
)
:getmonth
if "%1" equ "Jan" set mon=01
if "%1" equ "Feb" set mon=02
if "%1" equ "Mar" set mon=03
if "%1" equ "Apr" set mon=04
if "%1" equ "May" set mon=05
if "%1" equ "Jun" set mon=06
if "%1" equ "Jul" set mon=07
if "%1" equ "Aug" set mon=08
if "%1" equ "Sep" set mon=09
if "%1" equ "Oct" set mon=10
if "%1" equ "Nov" set mon=11
if "%1" equ "Dec" set mon=12
goto :eof
endlocal
Here is what I have tried so far:
#!/bin/bash
set +v
for -f "tokens=2-7 delims=_.- A in ('Is-I -B TACOS_*'); do (
getmonth B
mv -iv TACOS*_*A-B-C*_*D-E-F_AST.csv TACOS_A!mon!C_DEF.csv
)
:getmonth
if "$1" equ "Jan" then mon=01
if "$1" equ "Feb" then mon=02
if "$1" equ "Mar" then mon=03
if "$1" equ "Apr" then mon=04
if "$1" equ "May" then mon=05
if "$1" equ "Jun" then mon=06
if "$1" equ "Jul" then mon=07
if "$1" equ "Aug" then mon=08
if "$1" equ "Sep" then mon=09
if "$1" equ "Oct" then mon=10
if "$1" equ "Nov" then mon=11
if "$1" equ "Dec" then mon=12
goto :eof
here is what i have tried so far
#!/bin/bash
set +v
for -f "tokens=2-7 delims=_.- A in ('Is-I -B TACOS_*'); do (
getmonth B
mv -iv TACOS*_*A-B-C*_*D-E-F_AST.csv TACOS_A!mon!C_DEF.csv
)
:getmonth
if "$1" equ "Jan" then mon=01
if "$1" equ "Feb" then mon=02
if "$1" equ "Mar" then mon=03
if "$1" equ "Apr" then mon=04
if "$1" equ "May" then mon=05
if "$1" equ "Jun" then mon=06
if "$1" equ "Jul" then mon=07
if "$1" equ "Aug" then mon=08
if "$1" equ "Sep" then mon=09
if "$1" equ "Oct" then mon=10
if "$1" equ "Nov" then mon=11
if "$1" equ "Dec" then mon=12
goto :eof
%to$and expect it to work... If you can't tell what the batch script is doing just by running it, then from the Windows command line typehelp forandhelp setand read those help pages. Also, you meantls -l, notIs-I... but what you really want is justlswithout-l.