[AIX] 패턴으로 다중 파일 처리 xargs , awk
- Life Logs/Study Notes
- 2014. 9. 16. 01:58
안녕하세요, 우리노트 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