디렉터리 경로의 파일 이름만 캡처 [닫기]

디렉터리 경로의 파일 이름만 캡처 [닫기]

필요하다

Col1 ,  Col2             ,         Col3         ,   Col4
1   , a:/b/c/abc.txt          , f:/b/c/abc1.txt , a:/b/c/abc6.txt 
2   , b:/bd/a/s/3/d/mon.dat   , g:/b/c/abc 2.txt, b:/b/c/ab7.txt 
3   , c:/j/h/4/u/y/d/m/ttt.dat, h:/b/c/abc 3.txt, c:/b/c/abc 8.txt 
4   , c:/j/h/4/test1.msg      , i:/b/c/abc4.txt , d:/b/c/abc 9.txt
5   , d:/iasa/dda/dia/yyy.dat , j:/b/c/abc5.txt , e:/b/c/abc 10.txt

O/P가 기대된다

Col1  ,    Col2     ,    Col3    ,   Col4                      
1  ,       abc.txt   ,   abc1.txt ,  abc6.txt
2  ,       mon.dat   ,   abc2.txt  , abc7.txt
3  ,       ttt.dat   ,   abc3.txt  , abc8.txt
4  ,       test1.msg ,   abc4.txt  , abc9.txt
5  ,       yyy.dat   ,   abc5.txt  , abc10.txt

답변1

공간분포에서는 어떤 체계도 유추할 수 없기 때문에 어떤 형식으로 추측했을 뿐입니다. 취향에 맞게 자유롭게 조정하세요.

awk -F, '{gsub (/ |\r/, ""); printf "%-4s ", $1; for (i=2; i<=NF; i++) {n=split($i, T, "/"); printf ", %-10s ", T[n]} printf RS}' OFS=, file
Col1 , Col2       , Col3       , Col4       
1    , abc.txt    , abc1.txt   , abc6.txt   
2    , mon.dat    , abc2.txt   , ab7.txt    
3    , ttt.dat    , abc3.txt   , abc8.txt   
4    , test1.msg  , abc4.txt   , abc9.txt   
5    , yyy.dat    , abc5.txt   , abc10.txt  

답변2

사용 sedcolumn:

$ sed 's/ //g; s/,[^,]*\//,/g; s/,/ , /g' file | column -t
Col1  ,  Col2       ,  Col3      ,  Col4
1     ,  abc.txt    ,  abc1.txt  ,  abc6.txt
2     ,  mon.dat    ,  abc2.txt  ,  ab7.txt
3     ,  ttt.dat    ,  abc3.txt  ,  abc8.txt
4     ,  test1.msg  ,  abc4.txt  ,  abc9.txt
5     ,  yyy.dat    ,  abc5.txt  ,  abc10.txt
  • 모든 공백 문자를 빈 문자열로 바꾸기
  • ,다음의 모든 비문자를 다음 ,으로 바꾸십시오./,
  • 모두 ,다음으로 교체,
  • 테이블로 예쁜 인쇄 출력column

관련 정보