Sponsored Content
Top Forums Shell Programming and Scripting Bash to check directory and create missing folder from file Post 303039406 by cmccabe on Thursday 3rd of October 2019 08:42:20 AM
Old 10-03-2019
I added set -x and the $STRING variable looks to contain only one of the $2 values from f1, instead of the three so the directory created is not the right one. Thank you very much Smilie.

f1
Code:
yyy_009 00-0000-xxx-xxx-xxx
yyy_004 00-0011-xxx-xxx-xxx
R_2019_00_00_00_00_00_xxxx_x0-00000-200_yyyyyyy

zzzz_0000 00-3333-zz-zz  --- not printed to $STRING currently, but should be for the comparison ---
zzzz_0005 00-1111-xxx-xxx  --- printed to $STRING currently ---
zzzz_0003 00-2222-yyy-yy   --- not printed to $STRING currently, but should be for the comparison  ---
R_2019_00_00_00_00_00_xxxx_x0-00000-123-v5.6_xxx_xxx_xxx_xxx_xxx_xxx_xxxx   ---- this is matched ---

$folder
Code:
zzzz_0005 00-1111-xxx-xxx  --- this is correct ---
zzzz_0003 00-2222-yyy-yy

so since
Code:
00-3333-zz-zz

is not in folder 00-3333-zz-zz/variants is created

Code:
+ for RDIR in '"$DIR"/R_2019*'
+ S5=R_2019_00_00_00_00_00_xxxx_x0-00000-123-v5.6_xxx_xxx_xxx_xxx_xxx_xxx_xxxx
+ TRIMSTR=/home/cmccabe/Desktop/new/R_2019_00_00_00_00_00_xxxx_x0-00000-123
+ mv /home/cmccabe/Desktop/new/R_2019_00_00_00_00_00_xxxx_x0-00000-123-v5.6_xxx_xxx_xxx_xxx_xxx_xxx_xxxx /home/cmccabe/Desktop/new/R_2019_00_00_00_00_00_xxxx_x0-00000-123
+ cd /home/cmccabe/Desktop/new/R_2019_00_00_00_00_00_xxxx_x0-00000-123
++ awk -F '\n' -v RS= -v ref=R_2019_00_00_00_00_00_xxxx_x0-00000-123-v5.6_xxx_xxx_xxx_xxx_xxx_xxx_xxxx '$0 ~ ref {print $2}' /home/cmccabe/Desktop/new/f1
+ STRING='zzzz_0005 00-1111-xxx-xxx'
+ for folder in '*[0-9]*/'
+ folder=00-1111-xxx-xxx
+ [[  zzzz_0005 00-1111-xxx-xxx  == *\ 00-1111-xxx-xxx\ * ]]
+ for folder in '*[0-9]*/'
+ folder=00-2222-yyy-yy
+ [[  zzzz_0005 00-1111-xxx-xxx  == *\ 00-2222-yyy-yy\ * ]]
+ mkdir -p /home/cmccabe/Desktop/new/R_2019_00_00_00_00_00_xxxx_x0-00000-123/00-2222-yyy-yy/variants
+ break

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use awk to create new folder in current directory

Alright, I am sure this is a laughable question, but I don't know so I am going to ask anyway. I have a little script I am writing to take information from one source, recode it in a certain way, and print to files for each subject I have data for. This all works perfectly. I just want to put... (6 Replies)
Discussion started by: ccox85
6 Replies

2. Shell Programming and Scripting

To check whether a directory is exist and if it is not, create it

Hi, I want to write a shell script to check whether a directory (say A) is existing in a given location and if it is not, create it. (3 Replies)
Discussion started by: sabya
3 Replies

3. Shell Programming and Scripting

check if multiple directories exist else create missing directories

Hi , I 'm trying to check if multiple directories exist on a server, if not create the missing ones and print " creating missing directory. how to write this in a simple script, I have made my code complex if ; then taskStatus="Schema extract directory exists, checking if SQL,Count and... (7 Replies)
Discussion started by: ramky79
7 Replies

4. Shell Programming and Scripting

how to check if a directory exists or not.if not need to create it

Hi, I am using solaris 10 OS and bash shell.just checking for small code snippet which follows below. /export/home/vomappservers/spa/common/5.0 /export/home/vomappservers/spa/common/scripts /export/home/vomappservers/spa/tools /export/home/vomappservers/spa/scm5.0/SCCS... (5 Replies)
Discussion started by: muraliinfy04
5 Replies

5. Shell Programming and Scripting

Create a folder under different user directory

Hello All, I have to write a shell script and use it in informatica. The script has to perform below actions: The script gets executed from edw user. Through the script, a DT folder has to be created under edw_sca user. Is this scenario possible through a SHELL script or not. ... (2 Replies)
Discussion started by: bghosh
2 Replies

6. Shell Programming and Scripting

Bash to select oldest folder in directory automatically and log process

The `bash` below uses the oldest folder in the specified directory and logs it. The goes though an analysis process and creates a log. My problem is that if there are 3 folders in the directory folder1,folder2,folder3, the bash is using folder2 for the analysis eventhough folder1 is the oldest... (0 Replies)
Discussion started by: cmccabe
0 Replies

7. Shell Programming and Scripting

Bash to add folder to exsisting folders in directory

I am trying to create subdirectories in each folder in /home/cmccabe/Desktop/NGS/test/*. When I use echo I can see each folder in the directory, but I can not seem to add the commented out portion in bold. These are the sub-directories and sub-folders I am trying to add to each folder in... (1 Reply)
Discussion started by: cmccabe
1 Replies

8. Shell Programming and Scripting

Bash to select oldest folder in directory and write to log

In the bash below the oldest folder in a directory is selected. If there are 3folders in the directory /home/cmccabe/Desktop/NGS/test and nothing is done to them (ie. no files deleted, renamed) then the bash correctly identifies f1 as the oldest. However, if something is done to the folder then... (4 Replies)
Discussion started by: cmccabe
4 Replies

9. Shell Programming and Scripting

Create automated scan of specific directory using bash

I am trying to use bash to automate the scan of a specific directory using clamav. Having this in place is a network requirement. The below is an attempt to: 1. count the extensions (.txt, .jpeg) in a directory and write them to a virus-scan.log (section in bold) 2. scan each folder in the... (6 Replies)
Discussion started by: cmccabe
6 Replies

10. Shell Programming and Scripting

Create directory and sub-directory with awk and bash

In the below I am trying to create a parent directory using the R_2019 line from f1 if what above it is not empty. I then create sub-directories under each parent if there is a match between $2 of f1 and $2. Inside each sub-folder the matching paths in $3 and $4 in f2are printed. If there is no... (2 Replies)
Discussion started by: cmccabe
2 Replies
Config::Model::Loader(3pm)				User Contributed Perl Documentation				Config::Model::Loader(3pm)

NAME
Config::Model::Loader - Load serialized data into config tree VERSION
version 2.021 SYNOPSIS
use Config::Model; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($WARN); # define configuration tree object my $model = Config::Model->new; $model->create_config_class( name => "Foo", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, ] ); $model ->create_config_class ( name => "MyClass", element => [ [qw/foo bar/] => { type => 'leaf', value_type => 'string' }, hash_of_nodes => { type => 'hash', # hash id index_type => 'string', cargo => { type => 'node', config_class_name => 'Foo' }, }, [qw/lista listb/] => { type => 'list', cargo => {type => 'leaf', value_type => 'string' } }, ], ) ; my $inst = $model->instance(root_class_name => 'MyClass' ); my $root = $inst->config_root ; # put data my $step = 'foo=FOO hash_of_nodes:fr foo=bonjour - hash_of_nodes:en foo=hello ! lista=foo,bar lista:2=baz listb:0=foo listb:1=baz'; $root->load( step => $step ); print $root->describe," " ; # name value type comment # foo FOO string # bar [undef] string # hash_of_nodes <Foo> node hash keys: "en" "fr" # lista foo,bar,baz list # listb foo,baz list # delete some data $root->load( step => 'lista~2' ); print $root->describe(element => 'lista')," " ; # name value type comment # lista foo,bar list # append some data $root->load( step => q!hash_of_nodes:en foo.=" world"! ); print $root->grab('hash_of_nodes:en')->describe(element => 'foo')," " ; # name value type comment # foo "hello world" string DESCRIPTION
This module is used directly by Config::Model::Node to load serialized configuration data into the configuration tree. Serialized data can be written by the user or produced by Config::Model::Dumper while dumping data from a configuration tree. CONSTRUCTOR
new ( ) No parameter. The constructor should be used only by Config::Model::Node. load string syntax The string is made of the following items (also called "actions") separated by spaces: - Go up one node ! Go to the root node of the configuration tree. xxx Go down using "xxx" element. (For "node" type element) xxx:yy Go down using "xxx" element and id "yy" (For "hash" or "list" element with "node" cargo_type) xxx=~/yy/ Go down using "xxx" element and loop over the ids that match the regex. (For "hash") For instance, with "OpenSsh" model, you could do Host=~/.*.debian.org/ user='foo-guest' to set "foo-user" users for all your debian accounts. xxx~yy Delete item referenced by "xxx" element and id "yy". For a list, this is equivalent to "splice xxx,yy,1". This command does not go down in the tree (since it has just deleted the element). I.e. a '"-"' is generally not needed afterwards. xxx=zz Set element "xxx" to value "yy". load also accepts to set elements with a quoted string. (For "leaf" element) For instance "foo="a quoted string"". Note that you cannot embed double quote in this string. I.e "foo="a "quoted" string"" will fail. xxx~ Undef element "xxx" xxx=z1,z2,z3 Set list element "xxx" to list "z1,z2,z3". Use ",," for undef values, and "" for empty values. I.e, for a list "('a',undef,'','c')", use "a,,"",c". xxx:yy=zz For "hash" element containing "leaf" cargo_type. Set the leaf identified by key "yy" to value "zz". Using "xxx=~/yy/=zz" is also possible. xxx.=zzz Will append "zzz" value to current values (valid for "leaf" elements). xxx#zzz or xxx:yyy#zzz Element annotation. Can be quoted or not quoted. Note that annotations are always placed at the end of an action item. I.e. "foo#comment", "foo:bar#comment" or "foo:bar=baz#comment" are valid. "foo#comment:bar" is not valid. Quotes You can surround indexes and values with double quotes. E.g.: a_string=""titi" and "toto"" Methods load ( ... ) Load data into the node tree (from the node passed with "node") and fill values as we go following the instructions passed with "step". ("step" can also be an array ref). Parameters are: node node ref of the root of the tree (of sub-root) to start the load from. step A string or an array ref containing the steps to load. See above for a description of the string. experience Specify the experience level used during the load (default: "master"). The experience can be "intermediate advanced master". The load will raise an exception if the step of the load string tries to access an element with experience higher than user's experience. check Whether to check values while loading. Either "yes" (default), "no" or "skip". Loading with "skip" will discard bad values. AUTHOR
Dominique Dumont, (ddumont at cpan dot org) SEE ALSO
Config::Model,Config::Model::Node,Config::Model::Dumper perl v5.14.2 2012-11-09 Config::Model::Loader(3pm)
All times are GMT -4. The time now is 08:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy