Batch to bash conversion


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Batch to bash conversion
# 1  
Old 03-04-2014
Batch to bash conversion

Hi,

I am just trying to convert the batch script to bash script and i am stuck at one point where I have the below code

Code:
for /f "delims=" %%a in (a.txt) do (

    for /f "tokens=1,2,3* delims==" %%i in ("%%a") do (
	  for /f "tokens=1,2,3* delims= " %%x in ("%%i") do (
	     if "%%x"=="Group" (
	       echo %%i
		   
                  set VAR1=%%i
		  set VAR2=%%j

The above code just look for a word "Group" before "=" sign and if it is present it will assign the LHS to VAR1 and RHS to VAR2.

a.txt looks like below

Code:
Username = #, %, $, ^
Group 1= Group A
Group 2= Group F, Group G, Group H, Group I,Group J
Country = AUS, NEW, RUS, ITA

I am just wondering is there a way to do the same in bash scripting? can anyone help me?

Last edited by prasanna2166; 03-04-2014 at 11:34 PM..
# 2  
Old 03-04-2014
Something to play with:
Code:
me@someplace:~/tmp$ cat x.sh
#!/bin/bash

while IFS='=' read LHS RHS
do
   echo "[${LHS}]=[${RHS}]"
   if [ "${LHS#Group}" != "${LHS}" ]
   then
      VAR1="${LHS}";
      VAR2="${RHS}";
   fi
done < a.txt
unset IFS

echo "VAR1:[${VAR1}]"
echo "VAR2:[${VAR2}]"
me@someplace:~/tmp$ ./x.sh
[Username ]=[ #, %, $, ^]
[Group 1]=[ Group A]
[Group 2]=[ Group F, Group G, Group H, Group I,Group J]
[Country ]=[ AUS, NEW, RUS, ITA]
VAR1:[Group 2]
VAR2:[ Group F, Group G, Group H, Group I,Group J]

This User Gave Thanks to CarloM For This Post:
# 3  
Old 03-05-2014
Thanks Carlom for your reply.

By using below code, "Group 2" assigned to "VAR1" and "Group F, Group G, Group H, Group I,Group J" assigned to "VAR2", but my need is to assign all the Groups present on LHS to one variable and corresponding RHS to another variable.

expected output is:
VAR1[0] = Group 1
VAR2 [0]= Group A
VAR1[1] = Group 2
VAR2 [1]= Group F, Group G, Group H, Group I,Group J

If Group 3 present on a.txt the array should be increased as VAR1[2] and VAR2[2].

Thanks in advance!!
# 4  
Old 03-05-2014
A slight modification over @CarloM solution:
Code:
#!/bin/bash
count=0
while  IFS== read id content
do 
   [ $(echo "${id:0:5}") != "Group" ] && continue
   VAR1[${count}]="${id}"
   VAR2[${count}]="${content}"
   (( count += 1))
done<a.txt

count2=0
while (( count2 < count ))
do
   echo "VAR1[${count2}]=${VAR1[${count2}]}"
   echo "VAR2[${count2}]=${VAR2[${count2}]}"
   (( count2 += 1))
done

# 5  
Old 03-06-2014
Hi Klashxx,

It works as expected...Thanks much!!!

Last edited by prasanna2166; 03-07-2014 at 10:12 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Windows Batch to Bash

This line is called in a windows batch file and I need to call the same 3 jars with Parms in a bash script. cd "D:\ACDRIP\JARS" java -cp ".\RIPError.jar;.\RIP31.jar;.\RIP31msg_en_US.jar" ResubmitErrors -Ahost -P185050 pause Any ideas how to do this in Bash? (3 Replies)
Discussion started by: xgringo
3 Replies

2. UNIX for Beginners Questions & Answers

Using BATCH to call a BASH script on CygWin

I am trying to use a batch file to automatically execute a bash script with no luck this far. The batch script looks like this: C:\Cygwin64\bin\bash test.sh I have also tried this: C:\Cygwin64\bin\bash "C:\Cygwin64\bin\test.sh" Needless to say that the windows box has Cygwin... (7 Replies)
Discussion started by: Xterra
7 Replies

3. Shell Programming and Scripting

Batch to shell script conversion

Hi All, I have a small tool which is currently configured in batch scripts only. But my need is to run it on Linux platform, so I have been trying to convert a batch script to shell script. below is the batch script: @echo off IF "%1"== "" GOTO ARGERR REM UPDATE THESE PROPERTIES TO... (2 Replies)
Discussion started by: sukhdip
2 Replies

4. Shell Programming and Scripting

Bash to sh conversion

declare -i DEFINT=1 declare -i DEFDELAY=1 declare -i timeout=DEFTOUT declare -i interval=DEFINT declare -i delay=DEFDELAY if (($# == 0 || interval <= 0)); then printUsage exit 1 fi ( ((t = timeout)) while ((t > 0)); do sleep $interval kill -0 $$ ||... (5 Replies)
Discussion started by: SkySmart
5 Replies

5. Shell Programming and Scripting

Conversion batch shell script

while converting batch file to shell script ...dis command is ther i dunno how to change...can anyone knws how to change into shell script rm !(D:\temp\XX.txt) (3 Replies)
Discussion started by: monisha
3 Replies

6. Shell Programming and Scripting

Help to rewrite scritp Bash into a batch

Hello, My Bash script is working but i dont know batch programing, anyone can help me? I dont want use programs to do this task, i will use in many computers... Bash: My work until now... BATCH: Thanks for help. (1 Reply)
Discussion started by: Rodrocha
1 Replies

7. Shell Programming and Scripting

tftp batch mode within bash script

Hi, I put the necessary tftp commands into a batch file and I can run tftp by $ tftp < tftpbatchscript in bash command line and then successfully exit. Now, I want to put a line which does the same thing above. However, when I put this line into a bash script, the lines below this line... (1 Reply)
Discussion started by: yildiz.a
1 Replies

8. Shell Programming and Scripting

Help with 'batch conversion using lame' shell script

Hi. I am trying to write an sh script that will: 1. take each wav file in ~/Documents 2. convert each into mp3 format using "lame" encoder 3. save the new mp3 in ~/Documents/newmp3s. It has to follow the 3 steps in this order for each wav file before taking the next file. I tried a... (8 Replies)
Discussion started by: Kingzy
8 Replies

9. Shell Programming and Scripting

bash - batch processing folder of files by name

Hello Everyone!!! I need some help with a shellscript to batch process a folder of files with the imagemagick convert -append/+append command. The folder contains some hundred or thousand of small images in .png format which I would like to join together in order of their filenames. The... (3 Replies)
Discussion started by: imtombi
3 Replies

10. UNIX for Dummies Questions & Answers

BASH uppercase conversion

How can I convert a variable to uppercase like ksh, typeset -u $1 in bash? (1 Reply)
Discussion started by: stringdom
1 Replies
Login or Register to Ask a Question