Parameter expansion not working for all strings...
I'm trying to write a script that parses my music collection and hard link some filenames that my media player doesn't like to other names.
To do this I need to extract the name and remove alla non ASCII characters from that and do a cp -l with the result.
Problem is this:
Code:
22:16:58 $ find . -wholename "*" -print
./Simon & Garfunkel - The Essential Simon & Garfunkel (2003)/CD1/15 - Simon & Garfunkel - The Dangling Conversation (Album Version).flac
./José González - In Our Nature/06 Abram.flac
./Ane Brun (2004) - A Temporary Dive [FLAC]/09 Ane Brun - Song No. 6.flac
Code:
22:18:28 $ find . -wholename "*" -print| while read line; do echo ${line//[^a-z]/};done
SimonGarfunkelTheEssentialSimonGarfunkelCDSimonGarfunkelTheDanglingConversationAlbumVersionflac
./José González - In Our Nature/06 Abram.flac
AneBrunATemporaryDiveFLACAneBrunSongNoflac
Off cause I realize that those names are gibberish but what puzzels me is why the "./José González - In Our Nature/06 Abram.flac" line is unaffected.
Code:
22:21:12 $ bash --version
bash --version
GNU bash, version 4.2.10(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
My guess is that it has something to do with é but I wouldn't know.
Hi all-
I have a variable that contains a web page:
echo $STUFF
<html> <head> <title>my page</title></head> <body> blah blah etc..
Can I use the shell's parameter expansion abilities to remove just the tags?
I thought that FIXHTML=${STUFF//<*>/} might do it, but it didn't seem to... (2 Replies)
Say you have this numeric variable that can be set by the user but you never want it to leave a certain range when it gets printed. How could you use parameter expansion such that it will never expand outside of that boundary? Thanks
---------- Post updated at 11:09 PM ---------- Previous update... (3 Replies)
Hi -
I am trying to do a simple config file with known variable names in it, e.g.:
contents of config file a.conf: -a
-b $work
-c $host
simplified contents of bash script file: work='trunk'
host='alaska'
opts=$(tr '\n' ' ' < a.conf)
opts="$opts $*"
mycommand $opts arg1 arg2
The... (3 Replies)
Hello experts,
I am exploring parameter expansion, and trying to cut the fields in a URL.
Following is the requirement:
I have
// abc.nnt /dir1/dir2/dir3/dir4/somefile.java
What i need to get is the path after dir3, and dir3 will be passed.
output that i need is... (1 Reply)
I'm using an Ubuntu machine and expansion is not working properly. What would cause this? Do I need to check for any particular bash packages?
$ ipcs -m | grep $USER | awk '{printf "%s ",$2}'
$ ipcs -m | grep UNF | awk '{printf "%s ",$2}'
294912 1048577 425986 688131 786436 1245189... (14 Replies)
I have made the following examples that print various parameter expansions
text: iv-hhz-sac/hpac/hhz.d/iv.hpac..hhz.d.2016.250.070018.sac
(text%.*): iv-hhz-sac/hpac/hhz.d/iv.hpac..hhz.d.2016.250.070018
(text%%.*): iv-hhz-sac/hpac/hhz
(text#*.): d/iv.hpac..hhz.d.2016.250.070018.sac... (2 Replies)
#!/bin/bash
SNMPW='/usr/bin/snmpwalk'
while read h i
do
loc=$($SNMPW -v3 -u 'Myusername' -l authPriv -a SHA -A 'Password1' -x AES -X 'Password2' $i sysLocation.0 2>/dev/null)
loc=${loc:-" is not snmpable."}
loc=${loc##*: }
loc=${loc//,/}
echo "$i,$h,$loc"
done < $1
My question is ... ... (1 Reply)
I am trying to become more fluent with the interworking of bash and minimize the number of external calls.
Sample Data. This will be the response of the snmp query.
SNMPv2-MIB::sysName.0 = STRING: SomeHostName
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.1745... (5 Replies)
Example data
$ ls *somehost*
10.10.10.10_somehost1.xyz.com.log
11.11.11.11_somehost2.xyz.com.log
#!/bin/bash
#FILES="*.log"
FILES=${FILES:-*.log}
for x in $FILES
do
ip="${x%%_*}" # isolate IP address
x="${x##*_}" # isolate hostname
hnam="${x%.*}" # Remove the ".log"... (2 Replies)
Hello All,
Could you please do help me here as I would like to perform parameter expansion in shell over a parameter expansion.
Let's say I have following variable.
path="/var/talend/nat/cdc"
Now to get only nat I could do following.
path1="${path%/*}"
path1="${path1##*/}"
Here... (8 Replies)
Discussion started by: RavinderSingh13
8 Replies
LEARN ABOUT DEBIAN
audio::file
Audio::File(3pm) User Contributed Perl Documentation Audio::File(3pm)NAME
Audio::File - Audio file abstraction library
SYNOPSIS
use Audio::File;
my $file = Audio::File->new( "foo.bar" );
print "The ". $file->type() ."-file ". $file->name
." is ". int $file->audio_properties->length() ." seconds long.
";
print "It's interpreted by ". $file->tag->artist()
." and called ". $file->tag->title() ".
";
DESCRIPTION
Audio::File abstracts a single audio file, independant of its format. Using this module you can access a files meta-info like title, album,
etc. as well as the files audio-properties like its length and bitrate.
Currently only the formats flac, ogg vorbis and mp3 are supported, but support for other formats may be easily added.
METHODS
new
$file = Audio::File->new( "foobar.flac" );
Constructor. It takes the filename of the your audio file as its only argument and returns an instance of Audio::File::${Type} if the
corresponding file type is supported. The file type will be determined using the file extension. Currently flac, ogg and mp3 are supported
but new formats may be added easily by creating a Audio::File::${Type} that inherits from Audio::File::Type, which is the base class for
all file type classes.
The methods and behaviour of the returned are documented in Audio::File::Type.
TODO
o Add possibility to change file and its tags.
o better (easier) interface?
o user shouldn't be forced to use Audio::File if he only want's the files tag or audio properties.
o Add possibility to access raw audio data (Audio::File::Data)
That could be done via Audio::Data or equivalent.
SEE ALSO
Audio::File::Type, Audio::File::Tag, Audio::File::AudioProperties
AUTHOR
Florian Ragwitz <flora@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2004 Florian Ragwitz
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
perl v5.10.0 2009-08-09 Audio::File(3pm)