我有以下格式的文本文件中的数据
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/WGS1/CLM/text1.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/WGS1/CLM/text2.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/EMP2/text3.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/ACS1/text4.txt我要输出如下
Path Name File Name
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/WGS1/CLM/ text1.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/WGS1/CLM/ text2.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/EMP2/ text3.txt
/gpfs/pcenterdata/test/SrcFiles/WCC_CDHP_LITES/ACS1/ text4.txt发布于 2020-07-30 13:46:45
使用Perl +列,您可以按照
perl -pE 'BEGIN{say "Path\tFile\n"} s!.*/\K!\t!' input | column -t发布于 2020-07-31 20:34:59
如果您的源确实是此文件,您可以这样做:
(echo full_path; cat input) |
csv-add-split -c full_path -e / -n parent,name -r |
csv-cut -c parent,name -S但是,如果您的源代码是目录路径,您可以这样做:
csv-ls -R -c parent,name /gpfs/pcenterdata/test/SrcFiles -S这些命令来自csv (https://github.com/mslusarz/csv-nix-tools)。
发布于 2020-07-31 23:42:33
与Prvt_Yadav类似,您可以使用awk & column,但是awk的"gensub“函数可以用于提取所需的文本。
awk 'BEGIN{print "PathName\tFileName"} {f=gensub(/.*\//,"\\1","1"); p=gensub(/[^/]*$/,"\\1","1"); print p"\t"f}' | column -thttps://unix.stackexchange.com/questions/601044
复制相似问题