2012-09-15 2 views
0

다음 명령을 실행하려고하면 오류가 발생합니다.우분투에서 오류를 던지는 +4 명령

ls -lr | egrep "txt$|tab$" | sort -rn+4 

오류 메시지 :

sort: invalid option -- '+' 
Try `sort --help' for more information. 

가 어떻게이 명령을 실행할 수 있습니까? sort +4의 기능은 무엇입니까?

+0

무엇을하려고합니까? 만약 당신이 더 많은 정렬 기능을 알고 싶다면 그냥 수동으로 매우 명확하게 볼 수 있습니다. 위의 명령은 파일의 내용을 4와 반대 순서로 표시하는 것처럼 보입니다. 또한 + sort 명령에서'sort -rn4'와 같이 필요하지 않습니다. r은 역순으로, n은 숫자로, 4는 숫자로 정렬합니다. – gks

+0

디렉토리 목록을 역순으로 출력하는 이유는 무엇입니까? 나중에 다시 정렬하려면 어떻게해야합니까? – knittl

답변

1

sort은 해당 맨 페이지에 따라 +4을 허용하지 않습니다. 네 번째 열을 기준으로 정렬하려면 -k4을 사용하십시오.

, BTW 나는 스크립트 ls|grep를 사용하지 것이다, 더 나은 xargs과 조합 find 명령을 사용

find -name '*.txt' -o -name '*.tab' | ls -lh | sort -rnk4 

find을하려면은 현재 디렉토리를 고려, 지정 maxdepth 옵션 :

find . -maxdepth 1 -name '*.txt' -o -name '*.tab' 
+0

grep ..을 사용하면 어떤 문제가 발생합니까 ?? – user1631651

+0

글쎄, 몇 가지 이유 :'ls'의 출력은 장래 버전에서 변경 될 수 있습니다. (가능하지는 않지만)'ls'의 출력은 설정이나 OS에 따라 다를 수 있습니다.'ls'는 모든 것을 출력하고,'find'만이 파일 이름 관심이있다. – knittl

2

+POS.COL 구문은 2002 년에 지원되지 않습니다.

이전 동작을 얻으려면 환경 변수를 설정하십시오 : _POSIX2_VERSION=199209, 실제로는 값이 비어 있지 않고 200112보다 작을 수 있습니다.

this page도 참조하십시오.

관련 문제