Sponsored Content
Top Forums Shell Programming and Scripting Bash to check directory and create missing folder from file Post 303039432 by cmccabe on Friday 4th of October 2019 12:40:44 PM
Old 10-04-2019
The below shows that the $STRING variable has all the reords in it and $folder contains 00-1111-xxx-xxx and 00-2222-yyy-yy, but no directory is created for 00-3333-zz-zz/variants. Since 00-3333-zz-zz is in $STRING but not in $folder, 00-3333-zz-zz/variants is used by mkdir -p

I also included what I think the awk line is doing, is it correct? Thank you Smilie.

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 {d=split($0, val, " "); for(i=2;i<d;i+=2) printf "%s ",val[i]; printf "\n"}' /home/cmccabe/Desktop/new/all
+ STRING='00-3333-zz-zz 00-1111-xxx-xxx 00-2222-yyy-yy '
+ for folder in '*[0-9]*/'
+ folder=00-1111-xxx-xxx
+ [[  00-3333-zz-zz 00-1111-xxx-xxx 00-2222-yyy-yy   == *\ 00-1111-xxx-xxx\ * ]]
+ for folder in '*[0-9]*/'
+ folder=00-2222-yyy-yy
+ [[  00-3333-zz-zz 00-1111-xxx-xxx 00-2222-yyy-yy   == *\ 00-2222-yyy-yy\ * ]]

Code:
STRING=$(awk -F '\n' -v RS="" -v ref="$S5" '$0 ~ ref {d=split($0, val, " "); for(i=2;i<d;i+=2) printf "%s ",val[i]; printf "\n"}' "$DIR"/f1)
use each newline as a seperator and then a space for each record. look for the $S5 variable in f1 and once found, loop through $2 printing them using val and storing them in $STRING seperated by a space


Last edited by cmccabe; 10-04-2019 at 01:45 PM.. Reason: added details
 

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
folder(1)						      General Commands Manual							 folder(1)

NAME
folder - set folder or display current folder name (only available within the message handling system, mh) SYNOPSIS
folder [+folder] [msg] [options] OPTIONS
Displays information on all the folders in your Mail directory. The folders are listed alphabetically, with a line of information given for each folder. This is identical to the display produced by the folders command. See folders(1). Lists only the name of the current folder, with no additional information. This is faster because the folders need not be read. Displays a header produced by the system, in addition to the information about the current file. This header is identical to the one that appears at the top of the listing produced by folder -all or by folders. The header can be suppressed by using the -noheader option. Prints a list of the valid options to this com- mand. Lists the contents of the folder-stack. No +folder argument is allowed with this option. The contents of the folder-stack are listed automatically when the -pop or -push option is used. This corresponds to the dirs operation in the C-shell. Re-numbers messages in the folder. Messages are re-numbered sequentially, and any gaps in the numbering are removed. The default operation is -nopack, which does not change the numbering in the folder. Discards the top of the folder-stack, after setting the current folder to that value. No +folder argu- ment is allowed with this option. This corresponds to the popd operation in the C-shell; see csh(1). The -push and -pop options are mutu- ally exclusive: the last occurrence of either one overrides any previous occurrence of the other. Pushes the current folder onto the folder-stack, and makes the +folder argument into the current folder. If +folder is not given, the current folder and the top of the folder-stack are exchanged. This corresponds to the pushd operation in the C-shell; see csh(1). The -push switch and the -pop switch are mutually exclusive: the last occurrence of either one overrides any previous occurrence of the other. Lists each folder recursively. Information on the current folder is displayed, followed by information on any sub-folders which it contains. Displays only the total num- ber of messages and folders in your Mail directory. This option does not print any information about the current folder. It can be sup- pressed using the -nototal option. The defaults for folder are: +folder defaults to the current folder msg defaults to none -nofast -noheader -nototal -nopack -norecurse DESCRIPTION
The folder command lets you set the current folder, or display information about it. It can also be used to manage the folder stack. If you use the folder command without a +folder argument, information about the current folder is displayed on the screen. If you use folder with the +folder argument, the named folder is set to be the current folder. Information about the named folder is also displayed on the screen. If you use folder with the msg argument, it will set the specified message to be current. Information on the current folder is also dis- played. You can use both the +folder and msg arguments together in one command. If you specify a +folder that does not exist, you are asked whether you want to create it. This is a good way to create an empty folder for later use. The display is identical whether you set the folder or display the contents of the current folder. The following example shows the type of display that is produced. The display lists the current folder, the number of messages in it, the range of the messages (low-high), and the current message within the folder. It also flags extra files if they exist. inbox+ has 16 messages ( 3- 22); cur= 15. RESTRICTIONS
Do not create folder names that are made up of only digits. PROFILE COMPONENTS
Current-Folder: To find the default current folder Folder-Protect: To set mode when creating a new folder Folder-Stack: To determine the folder stack lsproc: Program to list the contents of a folder EXAMPLES
The following example shows how folder can be used to change the current folder to +test, and display information on that folder. The plus sign (+) next to test indicates that it is now the current folder. % folder +test test+ has 2 messages ( 1- 2); cur= 2. The next example shows the display produced by using the -all option to folder: Folder # of messages ( range ); cur msg (other files) V2.3 has 3 messages ( 1- 3). adrian has 20 messages ( 1- 20); cur= 2. brian has 16 messages ( 1- 16). chris has 12 messages ( 1- 12). copylog has 242 messages ( 1- 242); cur= 225. inbox+ has 73 messages ( 1- 127); cur= 127. int has 4 messages ( 1- 4); cur= 2 (others). jack has 17 messages ( 1- 17); cur= 17. TOTAL= 387 messages in 8 folders. This display is identical to that produced by the folders command. See folders(1) for an explanation of this display. The next example shows how to use folder to create an empty folder: % folder +test Create folder "$HOME/Mail/test"? y test+ has no messages. You can also use folder to create an empty sub-folder within an existing folder. The following example shows how you can create a sub-folder in the folder +test: % folder +test/testtwo Create folder "$HOME/Mail/test/testwo"? y test/testtwo+ has no messages. See refile(1) for more details of sub-folders. FILES
The user profile. SEE ALSO
csh(1), refile(1), mhpath(1) folder(1)
All times are GMT -4. The time now is 10:26 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy