Sponsored Content
Top Forums Shell Programming and Scripting Create a flat file and directory structure Post 302771506 by Chubler_XL on Wednesday 20th of February 2013 11:49:47 PM
Old 02-21-2013
This comes close, only issue is unix sorts alphabetically so order is
dir1
dir11
dir12
dir2

Code:
find ./files \( -type d -o -name "*.abc" -o -name "*.txt" \) -print | awk '
function ppath(p, f, c) {
   s=index(f, "/");
   if (!p) return ppath(substr(f,1,s-1), substr(f,s+1), "");
   if (!s) pf=p"/"f;
   else pf=p"/"substr(f,1,s-1);
   if (!(pf in found)) {
      found[p]++;
      found[pf]=0
   }
   if (!s) return (c?c".":"") found[p] " " f
   return ppath(pf, substr(f, s+1), (c?c".":"") found[p])
}
{ print ppath("", $0, "") }


output:

Code:
1 files
1.1 Share
1.1.1 dir1
1.1.2 dir10
1.1.3 dir11
1.1.4 dir2
1.1.5 dir3
1.1.6 dir4
1.1.7 dir5
1.1.8 dir6
1.1.9 dir7
1.1.10 dir8
1.1.10.1 00001
1.1.10.1.1 IMG
1.1.10.1.1.1 IMG1
1.1.10.1.1.2 IMG2
1.1.10.2 IMG
1.1.10.2.1 IMG001
1.1.10.2.2 IMG002
1.1.10.2.2.1 1234.abc
1.1.10.2.2.2 abcd.txt
1.1.10.3 Sample
1.1.10.3.1 00002
1.1.10.3.1.1 IMAG
1.1.10.3.1.1.1 IMAG1
1.1.10.3.1.1.2 IMAG2
1.1.10.3.2 hello
1.1.10.3.2.1 prod
1.1.10.3.2.1.1 NAD
1.1.10.3.2.1.1.1 NAT
1.1.10.3.2.1.2 TEXT
1.1.10.3.2.1.2.1 TEXTILE1
1.1.11 dir9

---------- Post updated at 02:49 PM ---------- Previous update was at 01:49 PM ----------

Another solution without recursion:

Code:
find ./files \( -type d -o -name "*.abc" -o -name "*.txt" \) -print | awk '{
  c=split($0,v,"/");
  f=v[1];
  for(i=2;i<=c;i++)  {
      if(!(f in P)) P[f]=0;
      if(!(f"/"v[i] in P)) P[f]++;
      P[f"/"v[i]];
      printf "%s",P[f] (i<c?".":"")
      f=f"/"v[i]
  }
  print " " v[i-1];
}'


Last edited by Chubler_XL; 02-21-2013 at 12:50 AM.. Reason: Optimised
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

MV files from one directory structure(multiple level) to other directory structure

Hi, I am trying to write a script that will move all the files from source directory structure(multiple levels might exist) to destination directory structure. If a sub folder is source doesnot exist in destination then I have to skip and goto next level. I also need to delete the files in... (4 Replies)
Discussion started by: srmadab
4 Replies

2. Shell Programming and Scripting

Help to Create this file format structure

This data comes form the table and exported into the file in this format File1 Format weboffercode1,sourcecode1,1,1,1,1,1,1 weboffercode1,sourcecode2,1,1,1,1,1,1 weboffercode1,sourcecode1,1,1,1,1,1,1 weboffercode1,sourcecode3,1,1,1,1,1,1 weboffercode1,sourcecode3,1,1,1,1,1,1 ... (4 Replies)
Discussion started by: enigma_83
4 Replies

3. Programming

compare XML/flat file with UNIX file system structure

Before i start doing something, I wanted to know whether the approach to compare XML file with UNIX file system structure. I have a pre-configured file(contains a list of paths to executables) and i need to check against the UNIX directory structure. what are the various approches should i use ? I... (6 Replies)
Discussion started by: shafi2all
6 Replies

4. Shell Programming and Scripting

How to create a directory structure with getting input from a file.

Hi How to create a directory structure with getting input from a file. I have file in that following lines are written. ./activemq-4.1.2/activemq-core-4.1.2.jar ./activemq-4.1.2/backport-util-concurrent-2.1.jar ./camel-1.4.0/apache-camel-1.4.0.jar ./camel-1.4.0/lib/activation-1.1.jar... (12 Replies)
Discussion started by: itsjoy2u
12 Replies

5. UNIX for Dummies Questions & Answers

create tar archive without preserving directory structure?

I am adding some individual files to a tar archive and would like them to be added to the archive without any directory hierarchy, even though the files themselves exist in levels of hierarchy. Unfortunately, tar seems to always preserve the directory hierarchy when it adds the files. Here is... (2 Replies)
Discussion started by: Special_K
2 Replies

6. UNIX for Dummies Questions & Answers

find mv and create directory structure

Hi there, I'm trying to pull all my flacs out of my Music collection. I can do it with following command find b/ -name *.flac -exec mv {} flac/ \; which works great except it moves all the flac files to the flac folder. I want it to recreate the original folder the flacs were found in and mv... (8 Replies)
Discussion started by: fistikuffs
8 Replies

7. Shell Programming and Scripting

How we can create the master file through shell to show the tree structure of the directory?

Can we create the master file that show the whole tree structure of the directory till a particular folder? Database that contains four sub repository Sybase,sql,oracle,mysql and sql and oracle contains two subrepostories Siebel and plsql and each repositories contains three folders... (1 Reply)
Discussion started by: rohit22hamirpur
1 Replies

8. Shell Programming and Scripting

Rename last directory in a file structure

I have to write a script to rename the every last sub-directory in a directory structure if the last sub-directory name doesn't contain "submitted". eg: given directory path:/u01/home/somedir somedir can have many subdirectories and each subdirectory inturn has many subdirectories. somedir... (3 Replies)
Discussion started by: ramse8pc
3 Replies

9. Shell Programming and Scripting

Create Directory structure

Hello ; ) again Now I have my file like this : DIR2/DIR3 DIR2 DIR2/DIR3/DIR4/DIR5 I am looking for help to create a loop that will create the directory structure. I need something like this : If "DIR2" does not exist > Create IF "DIR2" exist already > check if onther "DIR"... (5 Replies)
Discussion started by: Aswex
5 Replies

10. OS X (Apple)

Create a bash array from a flat file of whitespaces only.

Hi guys and gals... MacBook Pro. OSX 10.13.2, default bash terminal. I have a flat file 1920 bytes in size of whitespaces only. I need to put every single whitespace character into a bash array cell. Below are two methods that work, but both are seriously ugly. The first one requires that I... (7 Replies)
Discussion started by: wisecracker
7 Replies
dircmp(1)							   User Commands							 dircmp(1)

NAME
dircmp - directory comparison SYNOPSIS
dircmp [-ds] [-w n] dir1 dir2 DESCRIPTION
The dircmp command examines dir1 and dir2 and generates various tabulated information about the contents of the directories. Listings of files that are unique to each directory are generated for all the options. If no option is entered, a list is output indicating whether the file names common to both directories have the same contents. OPTIONS
The following options are supported: -d Compares the contents of files with the same name in both directories and output a list telling what must be changed in the two files to bring them into agreement. The list format is described in diff(1). -s Suppresses messages about identical files. -w n Changes the width of the output line to n characters. The default width is 72. OPERANDS
The following operands are supported: dir1 A path name of a directory to be compared. dir2 USAGE
See largefile(5) for the description of the behavior of dircmp when encountering files greater than or equal to 2 Gbyte ( 2**31bytes). ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of dircmp: LC_COLLATE, LC_CTYPE, LC_MES- SAGES, and NLSPATH. EXIT STATUS
The following exit values are returned: 0 Successful completion. >0 An error occurred. (Differences in directory contents are not considered errors.) ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWesu | +-----------------------------+-----------------------------+ SEE ALSO
cmp(1), diff(1), attributes(5), environ(5), largefile(5) SunOS 5.10 1 Feb 1995 dircmp(1)
All times are GMT -4. The time now is 08:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy