If you use the variable FILES, then when when you expand it, it becomes susceptible to field splitting by the shell and that can break your script if there are files that contain spaces..
Either use:
Code:
for x in *_*.log
do
Or, since this is bash you can also use arrays):
Code:
FILES=( *_*.log )
for x in "${FILES[@]}";
do
I don't think it makes much difference in speed between those approaches..
You can also do something like this in the loop:
Code:
IFS=_ read ip hnam <<< "${x%.log}"
You can also do this:
Code:
FILES=( *_*.log )
for x in "${FILES[@]%.log}";
do
IFS=_ read ip hnam <<< "$x"
...
done
--
Depending on what you need to do and if you can operate on multiple files at ones, it may be more benificial, speedwise to use a find or an xargs construct..
Last edited by Scrutinizer; 10-12-2019 at 07:10 AM..
This User Gave Thanks to Scrutinizer For This Post:
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 strip out leading and trailing brackets from a word.
for example,
I have a value, in a file. I want to strip out the leading and trailing brackets it and should get the value Running.
I am using the following statement but in vain.
grep "Workflow run status:" <... (4 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)
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:
22:16:58 $... (8 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 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)
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
locale::script
Locale::Script(3perl) Perl Programmers Reference Guide Locale::Script(3perl)NAME
Locale::Script - standard codes for script identification
SYNOPSIS
use Locale::Script;
$script = code2script('phnx'); # 'Phoenician'
$code = script2code('Phoenician'); # 'Phnx'
$code = script2code('Phoenician',
LOCALE_CODE_NUMERIC); # 115
@codes = all_script_codes();
@scripts = all_script_names();
DESCRIPTION
The "Locale::Script" module provides access to standards codes used for identifying scripts, such as those defined in ISO 15924.
Most of the routines take an optional additional argument which specifies the code set to use. If not specified, the default ISO 15924
four-letter codes will be used.
SUPPORTED CODE SETS
There are several different code sets you can use for identifying scripts. The ones currently supported are:
alpha
This is a set of four-letter (capitalized) codes from ISO 15924 such as 'Phnx' for Phoenician.
This code set is identified with the symbol "LOCALE_SCRIPT_ALPHA".
The Zxxx, Zyyy, and Zzzz codes are not used.
This is the default code set.
numeric
This is a set of three-digit numeric codes from ISO 15924 such as 115 for Phoenician.
This code set is identified with the symbol "LOCALE_SCRIPT_NUMERIC".
ROUTINES
code2script ( CODE [,CODESET] )
script2code ( NAME [,CODESET] )
script_code2code ( CODE ,CODESET ,CODESET2 )
all_script_codes ( [CODESET] )
all_script_names ( [CODESET] )
Locale::Script::rename_script ( CODE ,NEW_NAME [,CODESET] )
Locale::Script::add_script ( CODE ,NAME [,CODESET] )
Locale::Script::delete_script ( CODE [,CODESET] )
Locale::Script::add_script_alias ( NAME ,NEW_NAME )
Locale::Script::delete_script_alias ( NAME )
Locale::Script::rename_script_code ( CODE ,NEW_CODE [,CODESET] )
Locale::Script::add_script_code_alias ( CODE ,NEW_CODE [,CODESET] )
Locale::Script::delete_script_code_alias ( CODE [,CODESET] )
These routines are all documented in the Locale::Codes man page.
SEE ALSO
Locale::Codes
Locale::Constants
http://www.unicode.org/iso15924/
Home page for ISO 15924.
AUTHOR
See Locale::Codes for full author history.
Currently maintained by Sullivan Beck (sbeck@cpan.org).
COPYRIGHT
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
Copyright (c) 2010-2011 Sullivan Beck
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.14.2 2011-09-26 Locale::Script(3perl)