Awk command to split file name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Awk command to split file name
# 8  
Old 11-04-2010
Bash/ksh:
Code:
F=( $(echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g') )

Code:
$ echo ${F[0]}
access
$ echo ${F[1]}
2
echo ${F[5]}
AM

ksh:
Code:
echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g' |   read f1 f2 f3 f4 f5 f6 x

bash:
Code:
read f1 f2 f3 f4 f5 f6 x < <(echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g')

----

Any posix compliant shell:
Code:
echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g' | {
  read f1 f2 f3 f4 f5 f6 x
  echo $f1
  echo $f6
}

Code:
access
AM

------

If you no longer need the command line parameters in you script:
Code:
set -- $( echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g' )

Code:
$ echo $1
access
$ echo $5
15
$ echo $6
AM


Last edited by Scrutinizer; 11-04-2010 at 05:49 AM.. Reason: added x to eat the extension
# 9  
Old 11-04-2010
Quote:
Originally Posted by mskalyani9
when i tried the command
echo "$fname" | sed 's/\(access\).\([0-9][0-9]*\)\([JFMASOND][a-z][a-z]\)-\([0-9][0-9]*\):\([0-9][0-9]*\)\([AP]M\)$/\1 \2 \3 \4 \5 \6/' | read a b c d e f

i got all blank values as output in a,b,c,d,e,f

---------- Post updated at 11:12 PM ---------- Previous update was at 11:08 PM ----------

I thnk the read command is not working is there any way i can pass the output to diff variables?
I guess you didn't try the first solution i mentionned with the loop for i in ... (see my previous post #2)
# 10  
Old 11-04-2010
@Scrutinizer

Quote:
Originally Posted by Scrutinizer
Bash/ksh:
Code:
F=( $(echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g') )

Code:
$ echo ${F[0]}
access
$ echo ${F[1]}
2
echo ${F[5]}
AM

ksh:
Code:
echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g' |   read f1 f2 f3 f4 f5 f6

bash:
Code:
read f1 f2 f3 f4 f5 f6 < <(echo "${fname##*/}" | sed 's/\([0-9]\)\([A-Z]\)/\1 \2/g;s/[-.:]/ /g')

----
Could you please tell why the parameter substitution is needed, as echo "${fname##*/}" and echo "${fname}" gives the same output.
# 11  
Old 11-04-2010
Because of post #6
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk command to split pipe delimited file

Hello, I need to split a pipe de-limited file based on the COLUMN 7 value . If the column value changes I need to split the file Source File Payment|ID|DATE|TIME|CONTROLNUMBER|NUMBER|NAME|INDICATOR 42156974|1137937|10/1/2018|104440|4232|2054391|CARE|1... (9 Replies)
Discussion started by: rosebud123
9 Replies

2. Shell Programming and Scripting

awk split and awk calculation in the same command

I am trying to run the awk below. My question is when I split the input, then run anotherawk to perform a calculation using that splitas the input there are no issues. When I try to combine them the output is not correct, is the split not working or did I do it wrong? Thank you :). input ... (8 Replies)
Discussion started by: cmccabe
8 Replies

3. Shell Programming and Scripting

awk split command to get the desired result

Dear all, I am using the awk 'split' command to get the particular value. FILE=InputFile_009_0.txt Temp=$(echo $FILE | awk '{split($FILE, a, "e_"); print a}') I would like to have the Temp take the value as : _009_0 ... (4 Replies)
Discussion started by: emily
4 Replies

4. Shell Programming and Scripting

awk file split

Hi all, First of all I' like to mention that I'm pretty new to unix scripting. :( I'm trying to split an large xml with awk and rename it based on the values of two attributes. Example XML <RECORD> <element1>11</element1> <element2>22</element2> <element3>33</element3>... (18 Replies)
Discussion started by: f0usk4s
18 Replies

5. Shell Programming and Scripting

Want to split awk command

Hi, There is an awk command in script and it is running successfully. I want to split that command in 2 lines. I have tried using '\' but its not working.. Please suggest me the solution. (11 Replies)
Discussion started by: Sanket Dalvi
11 Replies

6. Shell Programming and Scripting

Split a file using awk command.

awk 'FNR == 1 { c = 1 } { print > (f c) } !FNR%n { close(f c); ++c }' n=$files_per_stream f=$input_path/filename_ $input_file $input_file with some records are splitted into files named filename_1,filename_2...etc according to $files_per_stream. Plz help me know how and if anyone has... (7 Replies)
Discussion started by: guptam
7 Replies

7. Shell Programming and Scripting

using awk in perl with split command

Hi, I have an array with following data. First field shows the owner and second is unique name. Now i have to pic the latest value with respect to the date in case of duplicate. like "def" is from two owners "rahul/vineet", now i want the latest from the two and the owner name also for all the... (9 Replies)
Discussion started by: vineet.dhingra
9 Replies

8. Shell Programming and Scripting

Split File by Pattern with File Names in Source File... Awk?

Hi all, I'm pretty new to Shell scripting and I need some help to split a source text file into multiple files. The source has a row with pattern where the file needs to be split, and the pattern row also contains the file name of the destination for that specific piece. Here is an example: ... (2 Replies)
Discussion started by: cul8er
2 Replies

9. UNIX for Dummies Questions & Answers

Split a file with no pattern -- Split, Csplit, Awk

I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this. For example: split -l 3000000 filename.txt This is very slow and it splits the file with 3 million records in each... (10 Replies)
Discussion started by: madhunk
10 Replies

10. Shell Programming and Scripting

awk command to split in to 2 files

Hi, I have a problem in grepping a file for 2 strings and writing them to 2 appropriate files. I need to use the awk command and read the file only once and write to the appropriate file. My file is very huge in size and it is taking a long time using cat command and grep command. Can anyone... (3 Replies)
Discussion started by: m_subra_mani
3 Replies
Login or Register to Ask a Question