file_A-B.dat 형태로된 파일들이 들어 있는 디렉토리에서 A와 B가 같은 파일만 골라서 지우고 싶은데요,
가령, file_1-1.dat file_2-2.dat file_3-3.dat ... 는 선택해서 삭제하고,
file_1-3.dat file_1-2.dat ... 같은 파일은 남겨두고 싶어요.
어떤 방법이 효율적일까요?
감사합니다~!
awk를 써서 표현하자면
ls | awk -F "[_.-]" '{ if( $2 == $3 ) print $0 }'
이렇게 해서 잘 나오는지 확인하시고
ls | awk -F "[_.-]" '{ if( $2 == $3 ) print "rm", $0 }' | sh
로 삭제하시면 될듯.
---http://coolengineer.com
for file in file_*.dat; do set -a $(sed 's/file_\([0-9]*\)-\([0-9]*\).dat/\1 \2/' <<<$file); [ "$1" = "$2" ] && /bin/rm -f $file; done
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
ls | grep "^file_\([^-]\+\)-\1.dat" | xargs rm -f
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
awk를 써서 표현하자면 ls | awk -F
awk를 써서 표현하자면
ls | awk -F "[_.-]" '{ if( $2 == $3 ) print $0 }'
이렇게 해서 잘 나오는지 확인하시고
ls | awk -F "[_.-]" '{ if( $2 == $3 ) print "rm", $0 }' | sh
로 삭제하시면 될듯.
---
http://coolengineer.com
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
ls | grep
댓글 달기