All,
I have a file which contains two entry with spaces (either one or more than one space). ex.
/tmp/scripts/sql CUST_YR_END_INI.sql
/tmp/scripts/sql CUST_WK_END_INI.sql
/tmp/scripts/sql CUST_MTH_END_INI.sql
/tmp/scripts/sql CUST_YR_END_INC.sql
now I want to replac spaces with /
I need my output as.
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
Could any one please help me how I can do this through script.
Thanks,
Anshu
sed 's/ \+/\//g' <filenames
All,
I have a file which contains two entry with spaces (either one or more than one space). ex.
/tmp/scripts/sql CUST_YR_END_INI.sql
/tmp/scripts/sql CUST_WK_END_INI.sql
/tmp/scripts/sql CUST_MTH_END_INI.sql
/tmp/scripts/sql CUST_YR_END_INC.sql
now I want to replac spaces with /
I need my output as.
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
Could any one please help me how I can do this through script.
Thanks,
Anshu
Try:
sed 's/ /\//';'s/ //g' file
$ awk '{print $1"/"$2}' inputfile
I am beginer in UNIX, would be glad if you can please share the significance of + in command: sed 's/ \+/\//g'
+ --> Repeats the previous item once or more. Greedy, so as many items as possible will be matched before trying permutations with less matches of the preceding item, up to the point where the preceding item is matched only once
Regular Expressions Reference - Basic Syntax
$
$ cat f10
/tmp/scripts/sql CUST_YR_END_INI.sql
/tmp/scripts/sql CUST_WK_END_INI.sql
/tmp/scripts/sql CUST_MTH_END_INI.sql
/tmp/scripts/sql CUST_YR_END_INC.sql
$
$ perl -lne '/^(\S+)\s+(\S+)$/ and print "$1/$2"' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne 's/^(\S+)\s+(\S+)$/$1\/$2/' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne 's/^(\S+)\s+/$1\//' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne 's/\s+(\S+)$/\/$1/' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plane '$_="$F[0]/$F[1]"' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne '$_=join"/",split' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne 's/\s+/\//' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$ perl -plne '$_=join"/",unpack("A16x8A*")' f10
/tmp/scripts/sql/CUST_YR_END_INI.sql
/tmp/scripts/sql/CUST_WK_END_INI.sql
/tmp/scripts/sql/CUST_MTH_END_INI.sql
/tmp/scripts/sql/CUST_YR_END_INC.sql
$
$
Thanks everyone.
I tried all option which is suggested in this thread. Awk command worked perfectly as per requirment. sed command didnt work.
Thanks again for your help.
Thanks,
anshu
---------- Post updated at 05:27 AM ---------- Previous update was at 05:24 AM ----------
Thanks everyone.
I tried all option which is suggested in this thread. Awk command worked perfectly as per requirment. sed command didnt work.
Thanks again for your help.
Thanks,
anshu
yazu
September 4, 2011, 7:27am
11
tr -d ' ' <INPUTFILE >OUTPUTFILE
Well, I was inattentive.
tr -s ' ' / <INPUTFILE >OUTPUTFILE
kurumi
September 4, 2011, 8:28am
12
$ ruby -ne 'puts $_.gsub(/\s+/,"/")' file
$ ruby -ane 'puts $F.join("/")' file
---------- Post updated at 07:28 AM ---------- Previous update was at 07:27 AM ----------
that don't change the spaces to "/".
1 Like