[AIX] 패턴으로 다중 파일 처리 xargs , awk

반응형

안녕하세요, 우리노트 Benjamin입니다.


AIX 작업중 일정한 형식의 비슷한 명령을 동시에 날려야 할 경우가 있습니다. 스크립트를 짜서 수행해도 되지만 Command 단에서 바로 실행이 가능한 유용한 명령어 xargs와 awk 에 대해 알아보겠습니다.


# 같은 패턴을 갖는 파일이름을 백업을 위해 이름을 바꾸어 보겠습니다.


- 실습을 위해서 파일 여러개를 만들었습니다.


   $ touch test1

   $ touch test2

   $ touch test3

   $ touch abcd

   $ touch efgh


   $ ls

   abcd  efgh  test1  test2  test3


- grep으로 원하는 패턴 test만 list


   $ ls | grep test

   test1

   test2

   test3


- xargs 를 사용하여 원하는 파일이름을 변경해보겠습니다. (-I 옵션으로 변수 사용{}을 명시하여 사용할 수 있다.)


   $ ls | grep test | xargs -I{} mv {} {}.old


   $ ls

   abcd  efgh  test1.old  test2.old  test3.old

   

# 다시 .old 를 삭제하고 원래 파일로 되돌려보겠습니다.  .old가 들어있는 파일들에서 .old를 모두 삭제해보겠습니다.


확장자 앞에 이름만을 변수로 얻어내야 하므로 텍스트에서 원하는 부분만 추출해내야합니다.

- awk 명령을 통하여 텍스트의 원하는 부분 추출이 가능합니다.

     

    -F.          : -F옵션 뒤에 . 이 필드 구분자가 됩니다.

   '{print$1}' : 첫번째 필드만 출력하라는 명령입니다.


   $ ls | grep .old | awk -F. '{print$1}'

   test1

   test2

   test3

     

-  xargs 명령으로 {}.old 파일을 {} 로 변경하게 하면 완료!


   $ ls | grep .old | awk -F. '{print$1}' | xargs -I {} mv {}.old {}

   $ ls

   abcd   efgh   test1  test2  test3

   


댓글

Designed by JB FACTORY