우리가 sort file
명령 을 사용할 때 파일은 내용을 정렬 된 방식으로 보여줍니다.
sort infile >outfile
하면 정렬 된 출력을 "outfile"파일로 가져옵니다. 그런 다음 원본 "파일"을 지우면 모든 것이 정상입니다.
우리가 sort file
명령 을 사용할 때 파일은 내용을 정렬 된 방식으로 보여줍니다.
sort infile >outfile
하면 정렬 된 출력을 "outfile"파일로 가져옵니다. 그런 다음 원본 "파일"을 지우면 모든 것이 정상입니다.
답변:
파일 리디렉션을 사용하여 정렬 된 출력을 리디렉션 할 수 있습니다.
sort input-file > output_file
또는 -o
, --output=FILE
sort 옵션을 사용 하여 동일한 입력 및 출력 파일을 표시 할 수 있습니다 .
sort -o file file
참고 : 일반적인 실수는 출력을 동일한 입력 파일 (예 :)로 리디렉션하는 것 sort file > file
입니다. 쉘이 sort (1) 프로그램이 아닌 경로 재 지정을 수행 하고 있으며 출력 파일 인 입력 파일이 sort (1) 프로그램에 읽을 기회를 주기 직전에 지워지기 때문에 작동하지 않습니다.
GNU sort
정보 페이지 : -o OUTPUT-FILE'
OUTPUT-FILE 표준 출력 대신에 --output = OUTPUT-FILE '쓰기 출력. 최신 시스템에서 -o' cannot appear after an input file if
POSIXLY_CORRECT '는 sort F -o F'. Portable scripts should specify
입력 파일 앞에 -o OUTPUT-FILE' 과 같이 설정 됩니다.
sort -o file{,}
이 sort
명령은 기본적으로 정렬 작업 결과를 표준 출력으로 인쇄합니다. "in-place"정렬을 달성하려면 다음을 수행하십시오.
sort -o file file
file
정렬 된 출력으로 입력 을 덮어 씁니다 . -o
출력을 지정하는 데 사용되는 스위치는, POSIX 의해 정의 그래서 모든 버전에서 이용 가능해야한다 sort
:
-o 표준 출력 대신 사용할 출력 파일 이름을 지정하십시오. 이 파일은 입력 파일 중 하나와 동일 할 수 있습니다.
스위치 가 sort
없는 버전을 보유 할 수있을 정도로 불행한 경우 -o
( Luis 는 해당 버전이 존재 함을 보증 함) 표준 방식으로 "in-place"편집을 수행 할 수 있습니다.
sort file > tmp && mv tmp file
sort file | sponge file
이것은 다음 Fedora 패키지에 있습니다 :
moreutils : Additional unix utilities
Repo : fedora
Matched from:
Filename : /usr/bin/sponge
sudo apt install moreutils
파일을 제자리에 정렬하려면 다음을 시도하십시오.
echo "$(sort your_file)" > your_file
다른 답변에서 설명한 것처럼 출력을 입력 파일로 직접 리디렉션 할 수 없습니다. 그러나 sort
명령을 먼저 평가 한 다음 원래 파일로 다시 리디렉션 할 수 있습니다 . 이러한 방식으로 전체 정렬을 구현할 수 있습니다.
마찬가지로 paste
행 단위 추가를 구현하는 것과 같은 다른 명령에도이 트릭을 적용 할 수 있습니다 .
echo
은 POSIX에서 백 슬래시 이스케이프로 엉망이 될 수 -o
있으며 다음에 설명 된 입력과 동일한 파일에 대해 작동하기 때문에 좋지 않습니다 . stackoverflow.com/a/29244387/895245
다음은 (ab) 사용하는 접근 방식입니다 vim
.
vim -c :sort -c :wq -E -s "${filename}"
이 -c :sort -c :wq
부분은 파일을 연 후 vim 명령을 호출합니다. -E
그리고 -s
는 "헤드리스"모드가 실행하는 VIM 어느 단말에 드로잉하지 않도록해야한다.
이것은 sort -o "${filename}" "${filename}"
파일 이름 인수를 한 번만 취하는 것을 제외하고 는 접근 방식에 비해 거의 이점이 없습니다 .
이것은 파일 항목에 formatter
지시문 을 구현하는 데 유용했습니다 . 여기에 내가 사용한 것이 있습니다.nanorc
.gitignore
syntax "gitignore" "\.gitignore$"
formatter vim -c :sort -c :wq -E -s
nanorc
있습니까? 아이러니
file
동일한 파일의 정렬 된 내용으로 바꾸어 제자리에 정렬 하시겠습니까? 귀하의 질문이 현재 진술되는 방식, 전혀 아무것도하지 않는 것은 정답입니다 (출력을 원하지 않으므로 아무 것도하지 마십시오).