I want to fill 2 variables, $SERVER and $SHARE.
Obviously either '127.0.0.1' or 'servername' should be in $SERVER, while 'sharename' should become $SHARE.
Maybe i could just use another symbol than a dot as filename seperator between $SERVER and $SHARE?
But i nether want to use '-' nor '_' as they might occour in a share- or servername (right?), while i'm not sure how a coma as part of a filename works out.
Please note, the relevant code blocks are the function and the 'else' part.
Code:
GetServerShare() { # SERVER | SHARE
# Pass either Server- or Sharename
# Returns SERVER/SHARE (list if multiple)
# Look if ITEM is SERVER
servers="$(ls $CONFIG_CREDS|grep $1)"
# Look if ITEM is SHARE
shares="$(ls $CONFIG_SHARES|grep $1)"
# The grep \. should print out only server.share item,
# given the assumption the user has set them up already,
# while grep $1 will reduce the list to match provided argument/string
output="$(printf $servers $shares |grep \.|grep $1)"
for ITEM in $output;do
printf "$ITEM\n" # Need code here
done
}
....... other code ....
else if ( [ $mode = mount ] && [ ! "" = "$(echo $1|grep '/')" ] ) || \
( [ ! $mode = mount ] && [ ! "" = "$(echo $2|grep '/')" ] )
then # Adress contains slashes, thus contains server & share info
if [ ! $mode = mount ] #|| [ $doEdit ] || [ $doUnmount ]
then export SERVER=$(printf "$2"|sed s,'/',' ',g|awk '{print $1}') \
SHARE=$(printf "$2"|sed s,'/',' ',g|awk '{print $2}')
else export SERVER=$(printf "$1"|sed s,'/',' ',g|awk '{print $1}') \
SHARE=$(printf "$1"|sed s,'/',' ',g|awk '{print $2}')
fi
else # Its just the IP/NAS or the Share name
STR=$(GetServerShare $server_info)
# This export needs to be changed too,
# if i'd change the sed from / to '.' i'd get only 127 as SERVER,
# but it would work if the servername was used (but would required changes at /etc/hosts
export SERVER=$(printf "$STR"|sed s,'/',' ',g|awk '{print $1}') \
SHARE=$(printf "$STR"|sed s,'/',' ',g|awk '{print $2}')
echo $SERVER # DEBUG - debug:: 127.0.0.1.Share
echo $SHARE # DEBUG - debug:: EMPTY
fi
export CONFIG_NAS="$CONFIG_CREDS/$SERVER" \
CONFIG_SHARE="$CONFIG_SHARES/$SERVER.$SHARE"
.....
# Current 'fix' as the above 'else' in combination with export produces a trailing dot
[ "${CONFIG_SHARE:${#CONFIG_SHARE}-1}" = "." ] && \
export CONFIG_SHARE="${CONFIG_SHARE%?}"
As of now, within that elseblock, i need to split up $SERVER (127.0.0.1.SHARENAME) and make SHARENAME the $SHARE variable, which is currently empty.
Any ideas?
Thank you in advance
EDIT PS:
Always right after posting an idea pops up
I could just replace the dots with spaces (using sed), and then check how many words there are, and use the last word (like for word in line,do SHARE=$word;done) to be used as Variable $SHARE
No better solution comes to mind.
---------- Post updated at 16:13 ---------- Previous update was at 15:35 ----------
/solved
The loop works, though its not elegant, but once all is working, the scripts needs another rewrite anyway.
Hello,
I wish to remove any word coming after searched string found in a word.
source*.txt
#!bin/bash
#test1
http://www.aa.bb.cc http://www.xx.yy http://www.11.22.44
#test2
http://www.11.rr.cd http://www.01.yy http://www.yy.22.tt
#test3
http://www.22.qq.fc http://www.0x.yy... (15 Replies)
Hello,
I try to delete all strings if their first or last word is one of this list of words : "the", "i", "in", "there", "this", "with", "on", "we", "that", "of"
For example if i have this string in an input file "with me" this string will be removed,
Example: input
"the european... (2 Replies)
Hi All,
I want to remove the first word "cn=" from the below details. Only I want the number like 171345,174144...
cn=171345
cn=174144
How can I achieve this.
Please suggest.
Thanks-
P (6 Replies)
var=abc_cde_def_ghi_678.txt
Expected output:
cde_def_ghi_678.txt
Is there a better way to achive this other than cut command?
Basically, I need to remove the 1st word and _ from the string.
Thanks. (1 Reply)
Hello All,
I am running a command find . -name amp.cfg | cut -c 3- which gives me output something like below
rel/prod/amp.cfg
rel/fld/amp.cfg
deb/detail/amp.cfg
deb/err/amp.cfg I want to remove trailing "/amp.cfg" so that i should get output something like... (7 Replies)
Hi,
I have a file which has the following
/u12/data/oracle/abc.dbf
/u12/data/oracle/def.dbf
/u12/data/oracle/daf.dbf
/u12/data/oracledb/fgh.dbf
/u12/data/oracledb/fkh.dbf
/u12/data/oracledb/kdq.dbf
I want to do something like this
/u12/data/oracle
/u12/data/oracle... (7 Replies)
Hi All,
I have a file in which a number of lines are starting with similar first word but different next words.
I want to replace the any nth word(not 1st or 2nd) with another word.
Eg:- My file contains are like this:-
Ram is a boy.
Ram is a good boy.
Ram plays cricket.
Here I want to... (2 Replies)
Hi all,
FileOne
family balance >>>>>
0 0
0 0
java.io.FileNotFoundException: Settings.xml (No such file or directory)
at java.io.FileInputStream.open(Native Method)
..
....
.....
.....
java.lang.NullPointerException
...
.....
......
Stacktrace:
at... (2 Replies)
Hi All,
If my file is:
Wed Sep 9 22:45:14 EDT 2009
sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp> sftp>
This is log file generated from transfer...
sftp> sftp> sftp> sftp> Files placed properly....
sftp> sftp> sftp>
How can I remove "sftp>" word from this... (4 Replies)
Hi,
i have a question about to remove first word from a sentence.
my script;
#!/usr/bin/perl
$msgtxt = "this is a test script";
my @ap_txtMsg = split(/ +/, trim_data($msgtxt));
$ap_msgtxt = splice (@ap_txtMsg, 0, 1);
print $ap_msgtxt;
but the output is first word that i... (1 Reply)