Sort -g 는 숫자를 오름차순으로 정렬하는 데 사용됩니다.
anthony@mtt3:~$ sort --help | egrep "\-g"
-g, --general-numeric-sort compare according to general numerical value
다음 하나의 라이너는 PDF 파일 이름으로 파일을 반복하고 egrep -o 로만 숫자를 가져 오고 sort -g 를 사용 하여 숫자를 오름차순으로 정렬합니다 . 그런 다음이 숫자를 sed에 공급하고 연결합니다. 그런 다음 uniq으로 중복 출력을 제거합니다.
uniq 대신 awk를 사용할 수도 있습니다.
awk '!x[$0]++'
위의 내용은 uniq와 같습니다.
당신이 찾고있는 것은 이 하나의 라이너입니다.
for i in `cat tmp | egrep -o "[0-9]*" | sort -g`; do cat tmp | sed "s/\(^[a-z]*\)\([0-9]*\)\(\.pdf\)/\1$i\3/g" | uniq; done
tmp의 내용 :
anthony@mtt3:~$ cat tmp
cwcch10.pdf
cwcch11.pdf
cwcch12.pdf
cwcch13.pdf
cwcch14.pdf
cwcch15.pdf
cwcch16.pdf
cwcch17.pdf
cwcch18.pdf
cwcch1.pdf
cwcch2.pdf
cwcch3.pdf
cwcch4.pdf
cwcch5.pdf
cwcch6.pdf
cwcch7.pdf
cwcch8.pdf
cwcch9.pdf
편집하다:
명령 출력 :
anthony@mtt3:~$ for i in `cat tmp | egrep -o "[0-9]*" | sort -g`; do cat tmp | sed "s/\(^[a-z]*\)\([0-9]*\)\(\.pdf\)/\1$i\3/g" | uniq; done
cwcch1.pdf
cwcch2.pdf
cwcch3.pdf
cwcch4.pdf
cwcch5.pdf
cwcch6.pdf
cwcch7.pdf
cwcch8.pdf
cwcch9.pdf
cwcch10.pdf
cwcch11.pdf
cwcch12.pdf
cwcch13.pdf
cwcch14.pdf
cwcch15.pdf
cwcch16.pdf
cwcch17.pdf
cwcch18.pdf