작업을 하다가 엄청난 수의 파일중에 특정문자열(“format=%S”) 이 포함된 파일의 첫번째 줄을 지워야 하는 문제가 발생해서 스크립트를 하나 작성했다.
물론 하부 디렉토리도 많이 있으며, 모든 파일 대상이다.
find 명령어와 sed 명령을 이용해 해결했다.
응용하면 더 잼있는 것도 만들수 있을 듯..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/sh if [ -n "$1" ] then for i in `find $1 -type f | xargs grep -l "format=%S"` do echo "$i" sed -i 1d $i done else echo "input path " echo "EX) $0 /home/apollo89 " fi |
결과 :
1 2 3 4 5 6 7 8 9 10 11 |
]$ ./first_line_delete.sh input path EX) ./first_line_delete.sh /home/apollo89 ]$ ./first_line_delete.sh /data/ /data/file1 /data/file2 /data/file4 /data/1/file103 ... ]$ |