【问题标题】:Programming in SED or AWK在 SED 或 AWK 中编程
【发布时间】:2012-01-24 03:50:38
【问题描述】:

这是我的输入文件

/home/edwprod/dnp >ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//|---/g' -e 's/---|/   |/g' | grep -v "^\." 2>/dev/null
|---archive
|---bin
|   |---full_refresh
|   |---to_be_deleted
|---in_dir
|---landing
|   |---archive
|---log
|---tmp
/home/edwprod/dnp >


|---dat_profile_backup
|---mis
|   |---export
|   |   |---home
|   |   |   |---dss1user
|   |   |   |   |---audit
|   |   |   |   |---backup
|   |   |   |   |---bin
|   |   |   |   |   |---To_b_deleted
|   |   |   |   |   |---to_be_deleted
|   |   |   |   |---config
|   |   |   |   |---error
|   |   |   |   |---logs
|   |   |   |   |---plsql
|   |---landing_pad
|   |   |---5.8.7
|   |   |   |---bin
|   |   |   |---lib
|   |   |   |   |---5.8.7
|   |   |   |   |   |---Attribute
|   |   |   |   |   |   |---Handlers
|   |   |   |   |   |   |   |---demo
|   |   |   |   |   |---B
|   |   |   |   |   |---CGI
|   |   |   |   |   |   |---eg
|   |   |   |   |   |---CPAN
|   |   |   |   |   |---Carp
|   |   |   |   |   |---Class
|   |   |   |   |   |   |---ISA
|   |   |   |   |   |---DBM_Filter
|   |   |   |   |   |---Devel
|   |   |   |   |   |---Digest
|   |   |   |   |   |---Encode
|   |   |   |   |   |   |---CN
|   |   |   |   |   |   |---JP
|   |   |   |   |   |   |---KR
|   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |---Unicode
|   |   |   |   |   |---Exporter
|   |   |   |   |   |---ExtUtils
|   |   |   |   |   |   |---Command
|   |   |   |   |   |   |---Constant
|   |   |   |   |   |   |---Liblist
|   |   |   |   |   |   |---MakeMaker
|   |   |   |   |   |---File
|   |   |   |   |   |   |---Spec
|   |   |   |   |   |---Filter
|   |   |   |   |   |   |---Simple
|   |   |   |   |   |---Getopt
|   |   |   |   |   |   |---Long
|   |   |   |   |   |---Hash
|   |   |   |   |   |---I18N
|   |   |   |   |   |   |---LangTags
|   |   |   |   |   |---IO
|   |   |   |   |   |   |---Socket
|   |   |   |   |   |---IPC
|   |   |   |   |   |---List
|   |   |   |   |   |---Locale
|   |   |   |   |   |   |---Codes
|   |   |   |   |   |   |---Maketext
|   |   |   |   |   |---Math
|   |   |   |   |   |   |---BigFloat
|   |   |   |   |   |   |---BigInt
|   |   |   |   |   |---Memoize
|   |   |   |   |   |---NEXT
|   |   |   |   |   |---Net
|   |   |   |   |   |   |---FTP
|   |   |   |   |   |   |---Ping
|   |   |   |   |   |   |---demos
|   |   |   |   |   |---PA-RISC2.0
|   |   |   |   |   |   |---B
|   |   |   |   |   |   |---CORE
|   |   |   |   |   |   |---Data
|   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |---File
|   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |---IO
|   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |---Time
|   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |---XS
|   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |---B
|   |   |   |   |   |   |   |   |---C
|   |   |   |   |   |   |   |---ByteLoader
|   |   |   |   |   |   |   |---Cwd
|   |   |   |   |   |   |   |---Data
|   |   |   |   |   |   |   |   |---Dumper
|   |   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |   |   |---DProf
|   |   |   |   |   |   |   |   |---PPPort
|   |   |   |   |   |   |   |   |---Peek
|   |   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |   |   |---MD5
|   |   |   |   |   |   |   |---DynaLoader
|   |   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |   |   |---Byte
|   |   |   |   |   |   |   |   |---CN
|   |   |   |   |   |   |   |   |---EBCDIC
|   |   |   |   |   |   |   |   |---JP
|   |   |   |   |   |   |   |   |---KR
|   |   |   |   |   |   |   |   |---Symbol
|   |   |   |   |   |   |   |   |---TW
|   |   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |---Fcntl
|   |   |   |   |   |   |   |---File
|   |   |   |   |   |   |   |   |---Glob
|   |   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |   |   |---Call
|   |   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |   |   |---Langinfo
|   |   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |   |   |---SysV
|   |   |   |   |   |   |   |---List
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |   |   |---Base64
|   |   |   |   |   |   |   |---NDBM_File
|   |   |   |   |   |   |   |---ODBM_File
|   |   |   |   |   |   |   |---Opcode
|   |   |   |   |   |   |   |---POSIX
|   |   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |   |   |---encoding
|   |   |   |   |   |   |   |   |---scalar
|   |   |   |   |   |   |   |   |---via
|   |   |   |   |   |   |   |---SDBM_File
|   |   |   |   |   |   |   |---Socket
|   |   |   |   |   |   |   |---Storable
|   |   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |   |   |---Hostname
|   |   |   |   |   |   |   |   |---Syslog
|   |   |   |   |   |   |   |---Time
|   |   |   |   |   |   |   |   |---HiRes
|   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |   |---Normalize
|   |   |   |   |   |   |   |---XS
|   |   |   |   |   |   |   |   |---APItest
|   |   |   |   |   |   |   |   |---Typemap
|   |   |   |   |   |   |   |---attrs
|   |   |   |   |   |   |   |---re
|   |   |   |   |   |   |   |---sdbm
|   |   |   |   |   |   |   |---threads
|   |   |   |   |   |   |   |   |---shared
|   |   |   |   |   |   |---threads
|   |   |   |   |   |---PA-RISC2.0-thread-multi
|   |   |   |   |   |   |---B
|   |   |   |   |   |   |---CORE
|   |   |   |   |   |   |---Data
|   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |---File
|   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |---IO
|   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |---Time
|   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |---XS
|   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |---B
|   |   |   |   |   |   |   |   |---C
|   |   |   |   |   |   |   |---ByteLoader
|   |   |   |   |   |   |   |---Cwd
|   |   |   |   |   |   |   |---Data
|   |   |   |   |   |   |   |   |---Dumper
|   |   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |   |   |---DProf
|   |   |   |   |   |   |   |   |---PPPort
|   |   |   |   |   |   |   |   |---Peek
|   |   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |   |   |---MD5
|   |   |   |   |   |   |   |---DynaLoader
|   |   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |   |   |---Byte
|   |   |   |   |   |   |   |   |---CN
|   |   |   |   |   |   |   |   |---EBCDIC
|   |   |   |   |   |   |   |   |---JP
|   |   |   |   |   |   |   |   |---KR
|   |   |   |   |   |   |   |   |---Symbol
|   |   |   |   |   |   |   |   |---TW
|   |   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |---Fcntl
|   |   |   |   |   |   |   |---File
|   |   |   |   |   |   |   |   |---Glob
|   |   |   |   |   |   |   |   |---Temp
|   |   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |   |   |---Call
|   |   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |   |   |---Langinfo
|   |   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |   |   |---SysV
|   |   |   |   |   |   |   |---List
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |   |   |---Base64
|   |   |   |   |   |   |   |---NDBM_File
|   |   |   |   |   |   |   |---ODBM_File
|   |   |   |   |   |   |   |---Opcode
|   |   |   |   |   |   |   |---POSIX
|   |   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |   |   |---encoding
|   |   |   |   |   |   |   |   |---scalar
|   |   |   |   |   |   |   |   |---via
|   |   |   |   |   |   |   |---SDBM_File
|   |   |   |   |   |   |   |---Socket
|   |   |   |   |   |   |   |---Storable
|   |   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |   |   |---Hostname
|   |   |   |   |   |   |   |   |---Syslog
|   |   |   |   |   |   |   |---Time
|   |   |   |   |   |   |   |   |---HiRes
|   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |   |---Normalize
|   |   |   |   |   |   |   |---XS
|   |   |   |   |   |   |   |   |---APItest
|   |   |   |   |   |   |   |   |---Typemap
|   |   |   |   |   |   |   |---attrs
|   |   |   |   |   |   |   |---re
|   |   |   |   |   |   |   |---sdbm
|   |   |   |   |   |   |   |---threads
|   |   |   |   |   |   |   |   |---shared
|   |   |   |   |   |   |---threads
|   |   |   |   |   |---PA-RISC2.0-thread-multi-LP64
|   |   |   |   |   |   |---B
|   |   |   |   |   |   |---CORE
|   |   |   |   |   |   |---Data
|   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |---File
|   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |---IO
|   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |---Time
|   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |---XS
|   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |---B
|   |   |   |   |   |   |   |   |---C
|   |   |   |   |   |   |   |---ByteLoader
|   |   |   |   |   |   |   |---Cwd
|   |   |   |   |   |   |   |---Data
|   |   |   |   |   |   |   |   |---Dumper
|   |   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |   |   |---DProf
|   |   |   |   |   |   |   |   |---PPPort
|   |   |   |   |   |   |   |   |---Peek
|   |   |   |   |   |   |   |---Digest
|   |   |   |   |   |   |   |   |---MD5
|   |   |   |   |   |   |   |---DynaLoader
|   |   |   |   |   |   |   |---Encode
|   |   |   |   |   |   |   |   |---Byte
|   |   |   |   |   |   |   |   |---CN
|   |   |   |   |   |   |   |   |---EBCDIC
|   |   |   |   |   |   |   |   |---JP
|   |   |   |   |   |   |   |   |---KR
|   |   |   |   |   |   |   |   |---Symbol
|   |   |   |   |   |   |   |   |---TW
|   |   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |---Fcntl
|   |   |   |   |   |   |   |---File
|   |   |   |   |   |   |   |   |---Glob
|   |   |   |   |   |   |   |   |---Temp
|   |   |   |   |   |   |   |---Filter
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |   |   |---Call
|   |   |   |   |   |   |   |---I18N
|   |   |   |   |   |   |   |   |---Langinfo
|   |   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |---IPC
|   |   |   |   |   |   |   |   |---SysV
|   |   |   |   |   |   |   |---List
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |   |   |---Base64
|   |   |   |   |   |   |   |---NDBM_File
|   |   |   |   |   |   |   |---ODBM_File
|   |   |   |   |   |   |   |---Opcode
|   |   |   |   |   |   |   |---POSIX
|   |   |   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |   |   |---encoding
|   |   |   |   |   |   |   |   |---scalar
|   |   |   |   |   |   |   |   |---via
|   |   |   |   |   |   |   |---SDBM_File
|   |   |   |   |   |   |   |---Socket
|   |   |   |   |   |   |   |---Storable
|   |   |   |   |   |   |   |---Sys
|   |   |   |   |   |   |   |   |---Hostname
|   |   |   |   |   |   |   |   |---Syslog
|   |   |   |   |   |   |   |---Time
|   |   |   |   |   |   |   |   |---HiRes
|   |   |   |   |   |   |   |---Unicode
|   |   |   |   |   |   |   |   |---Normalize
|   |   |   |   |   |   |   |---XS
|   |   |   |   |   |   |   |   |---APItest
|   |   |   |   |   |   |   |   |---Typemap
|   |   |   |   |   |   |   |---attrs
|   |   |   |   |   |   |   |---re
|   |   |   |   |   |   |   |---sdbm
|   |   |   |   |   |   |   |---threads
|   |   |   |   |   |   |   |   |---shared
|   |   |   |   |   |   |---threads
|   |   |   |   |   |---PerlIO
|   |   |   |   |   |   |---via
|   |   |   |   |   |---Pod
|   |   |   |   |   |   |---Perldoc
|   |   |   |   |   |   |---Text
|   |   |   |   |   |---Scalar
|   |   |   |   |   |---Search
|   |   |   |   |   |---Switch
|   |   |   |   |   |---Term
|   |   |   |   |   |   |---ANSIColor
|   |   |   |   |   |---Test
|   |   |   |   |   |   |---Harness
|   |   |   |   |   |   |---Simple
|   |   |   |   |   |---Text
|   |   |   |   |   |   |---Balanced
|   |   |   |   |   |   |---TabsWrap
|   |   |   |   |   |---Thread
|   |   |   |   |   |---Tie
|   |   |   |   |   |---Time
|   |   |   |   |   |---Unicode
|   |   |   |   |   |   |---Collate
|   |   |   |   |   |---User
|   |   |   |   |   |---auto
|   |   |   |   |   |   |---POSIX
|   |   |   |   |   |   |   |---SigAction
|   |   |   |   |   |---pod
|   |   |   |   |   |---unicore
|   |   |   |   |   |   |---To
|   |   |   |   |   |   |---lib
|   |   |   |   |   |   |   |---bc
|   |   |   |   |   |   |   |---ccc
|   |   |   |   |   |   |   |---dt
|   |   |   |   |   |   |   |---ea
|   |   |   |   |   |   |   |---gc_sc
|   |   |   |   |   |   |   |---hst
|   |   |   |   |   |   |   |---jt
|   |   |   |   |   |   |   |---lb
|   |   |   |   |   |   |   |---nt
|   |   |   |   |   |---warnings
|   |   |   |   |---site_perl
|   |   |   |   |   |---5.8.7
|   |   |   |   |   |   |---Bundle
|   |   |   |   |   |   |---Carp
|   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |   |---Symdump
|   |   |   |   |   |   |---File
|   |   |   |   |   |   |---HTML
|   |   |   |   |   |   |---HTTP
|   |   |   |   |   |   |   |---Cookies
|   |   |   |   |   |   |   |---Headers
|   |   |   |   |   |   |   |---Request
|   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |---Adapter
|   |   |   |   |   |   |   |   |---Base
|   |   |   |   |   |   |   |   |---Gzip
|   |   |   |   |   |   |   |   |---Zip
|   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |---Uncompress
|   |   |   |   |   |   |   |   |---Adapter
|   |   |   |   |   |   |---LWP
|   |   |   |   |   |   |   |---Authen
|   |   |   |   |   |   |   |---Protocol
|   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |---Net
|   |   |   |   |   |   |   |---HTTP
|   |   |   |   |   |   |---OLE
|   |   |   |   |   |   |---PA-RISC2.0
|   |   |   |   |   |   |   |---Bundle
|   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Policy
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |   |   |---Const
|   |   |   |   |   |   |   |   |   |---GetInfo
|   |   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |   |---ProfileDumper
|   |   |   |   |   |   |   |   |---SQL
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---Win32
|   |   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |---PA-RISC2.0-thread-multi
|   |   |   |   |   |   |   |---Bit
|   |   |   |   |   |   |   |   |---Vector
|   |   |   |   |   |   |   |---Bundle
|   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |---Raw
|   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Policy
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |   |---Oracle
|   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |   |   |---Const
|   |   |   |   |   |   |   |   |   |---GetInfo
|   |   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |   |---ProfileDumper
|   |   |   |   |   |   |   |   |---SQL
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---Date
|   |   |   |   |   |   |   |   |---Calc
|   |   |   |   |   |   |   |   |---Calendar
|   |   |   |   |   |   |   |---HTML
|   |   |   |   |   |   |   |---Win32
|   |   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |   |---Bit
|   |   |   |   |   |   |   |   |   |---Vector
|   |   |   |   |   |   |   |   |---Carp
|   |   |   |   |   |   |   |   |   |---Clan
|   |   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |   |---Raw
|   |   |   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |   |---Oracle
|   |   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |   |   |---Date
|   |   |   |   |   |   |   |   |   |---Calc
|   |   |   |   |   |   |   |   |---Devel
|   |   |   |   |   |   |   |   |   |---StackTrace
|   |   |   |   |   |   |   |   |   |---Symdump
|   |   |   |   |   |   |   |   |---HTML
|   |   |   |   |   |   |   |   |   |---Parser
|   |   |   |   |   |   |   |   |   |---Tagset
|   |   |   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |   |   |---Base
|   |   |   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |   |---LWP
|   |   |   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |   |   |   |---Lite
|   |   |   |   |   |   |   |   |---OLE
|   |   |   |   |   |   |   |   |   |---Storage_Lite
|   |   |   |   |   |   |   |   |---Parse
|   |   |   |   |   |   |   |   |   |---RecDescent
|   |   |   |   |   |   |   |   |---Spreadsheet
|   |   |   |   |   |   |   |   |   |---ParseExcel
|   |   |   |   |   |   |   |   |   |---WriteExcel
|   |   |   |   |   |   |   |   |---Test
|   |   |   |   |   |   |   |   |   |---Exception
|   |   |   |   |   |   |   |   |---URI
|   |   |   |   |   |   |   |   |---XML
|   |   |   |   |   |   |   |   |   |---NamespaceSupport
|   |   |   |   |   |   |---PA-RISC2.0-thread-multi-LP64
|   |   |   |   |   |   |   |---Bit
|   |   |   |   |   |   |   |   |---Vector
|   |   |   |   |   |   |   |---Bundle
|   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |---Raw
|   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Policy
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |   |---Oracle
|   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |   |   |---Const
|   |   |   |   |   |   |   |   |   |---GetInfo
|   |   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |---Gofer
|   |   |   |   |   |   |   |   |   |---Transport
|   |   |   |   |   |   |   |   |---ProfileDumper
|   |   |   |   |   |   |   |   |---SQL
|   |   |   |   |   |   |   |   |---Util
|   |   |   |   |   |   |   |---Date
|   |   |   |   |   |   |   |   |---Calc
|   |   |   |   |   |   |   |   |---Calendar
|   |   |   |   |   |   |   |---HTML
|   |   |   |   |   |   |   |---Win32
|   |   |   |   |   |   |   |---XML
|   |   |   |   |   |   |   |   |---Parser
|   |   |   |   |   |   |   |   |   |---Encodings
|   |   |   |   |   |   |   |   |   |---Style
|   |   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |   |---Bit
|   |   |   |   |   |   |   |   |   |---Vector
|   |   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |   |---Raw
|   |   |   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |   |   |---Zlib
|   |   |   |   |   |   |   |   |---DBD
|   |   |   |   |   |   |   |   |   |---Oracle
|   |   |   |   |   |   |   |   |---DBI
|   |   |   |   |   |   |   |   |---Date
|   |   |   |   |   |   |   |   |   |---Calc
|   |   |   |   |   |   |   |   |---HTML
|   |   |   |   |   |   |   |   |   |---Parser
|   |   |   |   |   |   |   |   |---IO
|   |   |   |   |   |   |   |   |   |---Stringy
|   |   |   |   |   |   |   |   |---LWP
|   |   |   |   |   |   |   |   |---MIME
|   |   |   |   |   |   |   |   |   |---Lite
|   |   |   |   |   |   |   |   |---OLE
|   |   |   |   |   |   |   |   |   |---Storage_Lite
|   |   |   |   |   |   |   |   |---Parse
|   |   |   |   |   |   |   |   |   |---RecDescent
|   |   |   |   |   |   |   |   |---Spreadsheet
|   |   |   |   |   |   |   |   |   |---ParseExcel
|   |   |   |   |   |   |   |   |   |---WriteExcel
|   |   |   |   |   |   |   |   |---URI
|   |   |   |   |   |   |   |   |---XML
|   |   |   |   |   |   |   |   |   |---NamespaceSupport
|   |   |   |   |   |   |   |   |   |---Parser
|   |   |   |   |   |   |   |   |   |   |---Expat
|   |   |   |   |   |   |   |   |   |---SAX
|   |   |   |   |   |   |   |   |   |   |---Expat
|   |   |   |   |   |   |---Parse
|   |   |   |   |   |   |---Spreadsheet
|   |   |   |   |   |   |   |---ParseExcel
|   |   |   |   |   |   |   |---WriteExcel
|   |   |   |   |   |   |---Test
|   |   |   |   |   |   |---URI
|   |   |   |   |   |   |   |---file
|   |   |   |   |   |   |   |---urn
|   |   |   |   |   |   |---WWW
|   |   |   |   |   |   |   |---RobotRules
|   |   |   |   |   |   |---XML
|   |   |   |   |   |   |   |---SAX
|   |   |   |   |   |   |   |   |---PurePerl
|   |   |   |   |   |   |   |   |   |---Reader
|   |   |   |   |   |   |---auto
|   |   |   |   |   |   |   |---Compress
|   |   |   |   |   |   |   |   |---Zlib
|   |   |   |---man
|   |   |   |   |---man1
|   |   |   |   |---man3
|   |   |---E2E_states
|   |   |---bos1
|   |   |---bos2
|   |   |   |---BKP
|   |   |   |---bkp
|   |   |---bos3
|   |   |   |---BKP
|   |   |   |---bkp
|   |   |---bos4
|   |   |   |---BKP
|   |   |   |   |---bkp
|   |   |---bos_cease
|   |   |   |---bos_cease_1
|   |   |   |   |---archive
|   |   |   |   |---log
|   |   |   |   |---rejected
|   |   |   |---bos_cease_2
|   |   |   |   |---archive
|   |   |   |   |---log
|   |   |   |   |---rejected
|   |   |   |---bos_cease_3
|   |   |   |   |---archive
|   |   |   |   |---log
|   |   |   |   |---rejected
|   |   |   |---bos_cease_4
|   |   |   |   |---archive
|   |   |   |   |---log
|   |   |   |   |---rejected
|   |   |   |---bos_xsd
|   |   |   |---log
|   |   |---bos_log
|   |   |---c2b
|   |   |   |---delivered
|   |   |   |---loaded
|   |   |   |---log
|   |   |---c2b_vas_orders
|   |   |---cew
|   |   |   |---housekeep
|   |   |   |---log
|   |   |   |---scripts
|   |   |   |---sent
|   |   |   |---spool
|   |   |---css
|   |   |   |---err
|   |   |   |---loaded
|   |   |   |---log
|   |   |   |---rej
|   |   |   |---tsv
|   |   |---css_orders
|   |   |---domain
|   |   |---exch
|   |   |   |---delivered
|   |   |   |---loaded
|   |   |   |---log
|   |   |   |---rejected
|   |   |---finnead
|   |   |---geneva
|   |   |   |---err
|   |   |   |---loaded
|   |   |   |---log
|   |   |   |---rej
|   |   |   |---txt
|   |   |---he
|   |   |   |---csv
|   |   |   |---latest
|   |   |   |---log
|   |   |---lost+found
|   |   |---munich
|   |   |   |---archive
|   |   |   |---delivered
|   |   |   |---log
|   |   |---odm_css
|   |   |   |---delivered
|   |   |   |---loaded
|   |   |   |---log
|   |   |---oracle
|   |   |   |---InstantClient
|   |   |   |   |---itanium
|   |   |   |   |   |---32bit
|   |   |   |   |   |   |---instantclient_10_2
|   |   |   |   |   |   |   |---sdk
|   |   |   |   |   |   |   |   |---demo
|   |   |   |   |   |   |   |   |---include
|   |   |   |   |   |---64bit
|   |   |   |   |   |   |---instantclient_10_2
|   |   |   |   |   |   |   |---sdk
|   |   |   |   |   |   |   |   |---demo
|   |   |   |   |   |   |   |   |---include
|   |   |   |   |---pa-risc
|   |   |   |   |   |---32bit
|   |   |   |   |   |   |---instantclient_10_2
|   |   |   |   |   |   |   |---sdk
|   |   |   |   |   |   |   |   |---demo
|   |   |   |   |   |   |   |   |---include
|   |   |   |   |   |---64bit
|   |   |   |   |   |   |---instantclient_10_2
|   |   |   |   |   |   |   |---sdk
|   |   |   |   |   |   |   |   |---demo
|   |   |   |   |   |   |   |   |---include
|   |   |---orca
|   |   |   |---affinity
|   |   |   |   |---delivered
|   |   |   |   |---loaded
|   |   |   |   |---rejected
|   |   |   |---brio
|   |   |   |   |---sent
|   |   |   |---log
|   |   |---parb
|   |   |---scheduler
|   |   |   |---cron_backup
|   |   |   |---log
|   |   |---sdp
|   |   |   |---delivered
|   |   |   |---loaded
|   |   |   |---log
|   |   |   |---rejected
|   |   |   |---xsd
|   |   |---vos
|   |   |   |---log

如何为此构建?

我想使用SEDAWK 读取此文件并转换为

mkdir -p /home/edwprod/dnp/{archive,bin/{full_refresh,to_be_deleted},in_dir,landing/archive,log,tmp}

您能帮忙/指导一下吗?

【问题讨论】:

  • “不要这样做”是明智的指导吗?
  • 大声笑......对不起,我不应该笑,但我同意!
  • 你想达到什么目的?您是否尝试过“查找 . -type d' ?
  • 是的,我试图以其他方式实现。

标签: linux sed awk ksh sh


【解决方案1】:

我试图制定一个通用的解决方案。您可能需要针对几种情况对其进行测试。但看起来它应该适用于大多数人 -

awk -F="|---" '                                                                                                                        
BEGIN{printf "mkdir -p /home/edwprod/dnp/"}
$1=="|   |"{cnt++; if(count>0) count=0; if(cnt==1) printf "/{"$2",";else {printf $2","};next}
$1=="|"{count++; if(cnt>0) cnt=0;if(count<2) printf "{"$2","; else {printf $2","};next}END{if (NR==1) printf"\n"; else printf "}\n"}' FILENAME | 
sed -e 's/,{/},/g' -e 's/{\([a-z0-9]\+\)}/\1/g' -e 's/,\//\//g' -e 's/,\(.[^,]*\),}$/,\1}/' -e 's/\(.*\)\/{\(.[^,}]*\)}$/\1\/\2}/' -e 's/\(.*[^{]\){\(.*[^,]\),$/\1\2/' -e 's/\(.*\)\/{\(.[^,}]*\),}$/\1\/{\2}/'

测试:

[jaypal:~/Temp] cat file
|---archive
|---bin
|   |---full_refresh
|   |---to_be_deleted
|---in_dir
|---landing
|   |---archive
|---log
|---tmp

[jaypal:~/Temp] awk -F="|---" '                                                                                                                        
BEGIN{printf "mkdir -p /home/edwprod/dnp/"}
$1=="|   |"{cnt++; if(count>0) count=0; if(cnt==1) printf "/{"$2",";else {printf $2","};next}
$1=="|"{count++; if(cnt>0) cnt=0;if(count<2) printf "{"$2","; else {printf $2","};next}END{if (NR==1) printf"\n"; else printf "}\n"}' file | 
sed -e 's/,{/},/g' -e 's/{\([a-z0-9]\+\)}/\1/g' -e 's/,\//\//g' -e 's/,\(.[^,]*\),}$/,\1}/' -e 's/\(.*\)\/{\(.[^,}]*\)}$/\1\/\2}/' -e 's/\(.*[^{]\){\(.*[^,]\),$/\1\2/' -e 's/\(.*\)\/{\(.[^,}]*\),}$/\1\/{\2}/'
mkdir -p /home/edwprod/dnp/{archive,bin/{full_refresh,to_be_deleted},in_dir,landing/archive,log,tmp}

[jaypal:~/Temp] cat file1
|---bin
|---file_dir
|   |---old
|---in_dir
|---landing
|   |---feed
|---log
|---out_dir
|---prc
|   |---for

[jaypal:~/Temp] awk -F="|---" '                                                                                                                        
BEGIN{printf "mkdir -p /home/edwprod/dnp/"}
$1=="|   |"{cnt++; if(count>0) count=0; if(cnt==1) printf "/{"$2",";else {printf $2","};next}
$1=="|"{count++; if(cnt>0) cnt=0;if(count<2) printf "{"$2","; else {printf $2","};next}END{if (NR==1) printf"\n"; else printf "}\n"}' file1 | 
sed -e 's/,{/},/g' -e 's/{\([a-z0-9]\+\)}/\1/g' -e 's/,\//\//g' -e 's/,\(.[^,]*\),}$/,\1}/' -e 's/\(.*\)\/{\(.[^,}]*\)}$/\1\/\2}/' -e 's/\(.*[^{]\){\(.*[^,]\),$/\1\2/' -e 's/\(.*\)\/{\(.[^,}]*\),}$/\1\/{\2}/'
mkdir -p /home/edwprod/dnp/{bin,file_dir/old,in_dir,landing/feed,log,out_dir,prc/for}

【讨论】:

  • 尝试通用?如果可能的话。这将减少我在 Linux 测试和生产环境中创建巨大目录的手动工作。
  • 好吧,最好听从 Jon 的建议。这只会使您的艰巨任务更加艰巨。但是话虽如此,它可以被通用化。 awk 有太多的权力。也许你可以从这个solution中得到一些参考。
  • 我已经更新了解决方案。让我知道它是否在任何特定情况下都失败了。
  • 考虑这个例子|---bin |---file_dir | |---old |---in_dir |---landing | |---feed |---log |---out_dir |---prc | |---for输出是mkdir -p /home/edwprod/dnp/{bin,file_dir/old,in_dir,landingfeed},log,out_dir{prc,/{for,}它最后没有正确完成。
  • 嗯..我明天去看看。我的时间是凌晨 2.15 点 .. :) ... 是的,结尾加上landingfeed 是一个词... 它不见了,
【解决方案2】:

你为什么要这样做?当mkdir命令执行时,shell会生成一系列名字,单独的名字就是ls -R命令生成的名字。 mkdir 命令本身不会扩展您正在寻找的压缩符号。 (关于解析ls 的输出是否是一个好主意有一个单独的讨论,但如果你的名字不包含空格和其他奇数字符,我们可以忽略它。)

所以,你可能最好使用:

echo mkdir -p $(ls -R | sed -n '/:$/{s/:$//;p;}')

【讨论】:

  • 这会产生类似 this.mkdir -p 的输出。 ./archive ./bin ./bin/full_refresh ./bin/to_be_deleted ./in_dir ./landing ./landing/archive ./log ./tmp
  • 我删除了双引号,这有点搞砸了。从您的评论中很难判断您是在单独的行(双引号可以确保)还是在单行(这将给出我想要的结果)上看到所有内容。由于 shell 最终会生成单独的名称列表,因此我认为尝试生成多级大括号括起来的名称生成表示法没有任何好处。如果你真的想要,你有一些严肃的工作要做 - 我的回答是对你的帮助为零。
  • 感谢您的输入,并为我提供了非常简单的输入。我试着努力。
  • 如果你有很多目录并且需要创建层次结构,那么创建一个列出要创建的目录的文件可能是最简单的,然后使用xargs mkdir -p &lt; file.listing.directories。您可以通过这种方式处理任意长的列表。您也不必对列表进行排序或删除重复项,因为mkdir -p 不会抱怨它请求创建的任何目录已经存在。
猜你喜欢
  • 2017-04-23
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多