delete blank line from middle of a file

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

Try:

sed 's/ /\//';'s/ //g' file
awk '$1=$1' OFS="/" file

Guru.

$ 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

Thank you... :slight_smile:

$
$ 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

tr -d ' ' <INPUTFILE >OUTPUTFILE

Well, I was inattentive.

tr -s ' ' / <INPUTFILE >OUTPUTFILE
$ 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