05-12-2008
stripping certain characters in at the middle of a string
I am trying to strip out certain characters from a string on both (left & right) sides. For example, line=see@hear|touch, i only want to echo the "hear" part. Well i have tried this approach:
line=see@hear|touch
templine=${line#*@} #removed "see@"
echo ${templine%%\|*} #removed "|touch"
hear
...apparently it worked but i want to do this in only one line. Can anyone suggest a way on how to do this?
Another question, what if i added some more characters like this:
line=see@hear|touch|smell
...now i wanted to separate each and every one of them dynamically* like this: (*the values for templine2, 3 & 4 may vary)
templine1=see
templine2=hear
templine3=touch
templine4=smell
...can anyone also suggest on this one?
Many thanks
10 More Discussions You Might Find Interesting
1. Programming
I have a problem that I want to insert and delete some chars in the middle of a file. fopen() and fdopen() just allow to append at the end.
Is there any simple method or existing library that allow these actions? Thanks in advance.:confused: (7 Replies)
Discussion started by: ivancheung
7 Replies
2. UNIX for Dummies Questions & Answers
Hi,
How to strip a portion of a file name from behind...Say for Eg..i have a file name like aaaaa.bbbbb.Mar-17-2007
i want to remove .Mar-17-2007...is there a one line command which can give this output...
Thanks
Kumar (5 Replies)
Discussion started by: kumarsaravana_s
5 Replies
3. Shell Programming and Scripting
Hi there, if i have some strings ie
test_324423
test_242332
test_767667
but I only want the number part (the bolded bit) how do I strip the leftmost 5 characters from the output so that i will have just
324423
242332
767667
any help would be greatly appreciated
Gary (5 Replies)
Discussion started by: hcclnoodles
5 Replies
4. Shell Programming and Scripting
Hi ,
i have to strip the spaces in the string which has the following value
ABC DEF
i want this to appear like this
ABC DEF
is there any spilt method?
please help....
Thanks (3 Replies)
Discussion started by: rag84dec
3 Replies
5. Shell Programming and Scripting
I want to create a temp file which is named based on a search string. The search string may contain spaces or characters that aren't supposed to be used in filenames so I want to strip those out.
My thought was to use 'tr' with but the result is the opposite of what I want:
$ echo "test... (5 Replies)
Discussion started by: mglenney
5 Replies
6. UNIX for Dummies Questions & Answers
I tried to replace the following in vi:
old: 'e/thesis/pp/zones/zones'
new: 'd/so162/fix/pp'
For that, I used: :%s/e/thesis/pp/zones/zones/d/so162/fix/pp/g
but doesn't work, a trailing character error message appeared. How can I get it?
Thanks in advance (3 Replies)
Discussion started by: Gery
3 Replies
7. Shell Programming and Scripting
I'm using a shell script to get user input with this command:
read UserInput
I would then like to take the "UserInput" variable and strip out all of the following characters, regardless of where they appear in the variable or how many occurrences there are:
\/":|<>+=;,?*@
I'm not sure... (5 Replies)
Discussion started by: nrogers64
5 Replies
8. Shell Programming and Scripting
i want to parse a string and only display the digits in that string... How would i accomplish this with sed command.
For example.
input string: " 033434343 dafasdf"
output string: 03343434
Thanks (2 Replies)
Discussion started by: timmylita
2 Replies
9. Shell Programming and Scripting
Dear experts,
my problem is pretty tricky.
I want to change a file (see attached input.txt), according to another file (help.txt). The output that is desired is in output.txt. The example is attached.
Note that
-dashes should not be treated specially, they are considered normal characters,... (2 Replies)
Discussion started by: TheTransporter
2 Replies
10. Shell Programming and Scripting
I wrote myself a small little shell script to clean up a file I have issues with. In particular, I am stripping down a fully qualified host/domain name to just the hostname itself. The script works, but from a performance standpoint, it's not very fast and I will be working with large data sets.
... (4 Replies)
Discussion started by: dagamier
4 Replies
TOUCH(1) BSD General Commands Manual TOUCH(1)
NAME
touch -- change file access and modification times
SYNOPSIS
touch [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
DESCRIPTION
The touch utility sets the modification and access times of files to the current time of day. If the file doesn't exist, it is created with
default permissions.
The following options are available:
-a Change the access time of the file. The modification time of the file is not changed unless the -m flag is also specified.
-c Do not create the file if it does not exist. The touch utility does not treat this as an error. No error messages are displayed and
the exit value is not affected.
-f This flag has no effect; it is accepted for compatibility reasons.
-h If file is a symbolic link, access and/or modification time of the link is changed. This option implies -c.
-m Change the modification time of the file. The access time of the file is not changed unless the -a flag is also specified.
-r Use the access and modifications times from the specified file instead of the current time of day.
-t Change the access and modification times to the specified time. The argument should be in the form ``[[CC]YY]MMDDhhmm[.SS]'' where
each pair of letters represents the following:
CC The first two digits of the year (the century).
YY The second two digits of the year. If ``YY'' is specified, but ``CC'' is not, a value for ``YY'' between 69 and 99
results in a ``CC'' value of 19. Otherwise, a ``CC'' value of 20 is used.
MM The month of the year, from 1 to 12.
DD The day of the month, from 1 to 31.
hh The hour of the day, from 0 to 23.
mm The minute of the hour, from 0 to 59.
SS The second of the minute, from 0 to 61.
If the ``CC'' and ``YY'' letter pairs are not specified, the values default to the current year. If the ``SS'' letter pair is not
specified, the value defaults to 0.
The touch utility exits 0 on success, and >0 if an error occurs.
COMPATIBILITY
The obsolescent form of touch, where a time format is specified as the first argument, is supported. When no -r or -t option is specified,
there are at least two arguments, and the first argument is a string of digits either eight or ten characters in length, the first argument
is interpreted as a time specification of the form ``MMDDhhmm[YY]''.
The ``MM'', ``DD'', ``hh'' and ``mm'' letter pairs are treated as their counterparts specified to the -t option. If the ``YY'' letter pair
is in the range 69 to 99, the year is set to 1969 to 1999, otherwise, the year is set in the 21st century.
SEE ALSO
utimes(2)
STANDARDS
The touch utility is expected to be a superset of the IEEE Std 1003.2 (``POSIX.2'') specification.
HISTORY
A touch utility appeared in Version 7 AT&T UNIX.
BUGS
A symbolic link can't be a reference file of access and/or modification time.
BSD
February 22, 2011 BSD