
제가 이해한 바에 따르면 를 사용하고 싶습니다 comm -23 file1 file2
. file1은 의 결과 find
이고 file2는 입니다 cut -c43- list
. 이것을 한 줄로 작성하고 어떤 파일도 사용하지 않는 것이 가능합니까(목록이라는 이름을 붙인 파일 제외)?
답변1
프로세스 대체는 여기에서 당신의 친구입니다:
$ comm -23 <(find /dir -name 'something') <(cut -c43- list)
형식은 <(command)
임시 파일 설명자를 에 적용 command
하고 전체 는 (또는 다른 명령) <( )
에 대한 파일 입력으로 사용됩니다 . 보다comm
프로세스 대체에 대한 자세한 내용은 여기를 참조하세요.. 또한 확인하십시오 man bash
:
프로세스 대체
프로세스 대체를 사용하면 파일 이름을 사용하여 프로세스의 입력 또는 출력을 참조할 수 있습니다. <(목록) 또는 >(목록) 형식을 취합니다. 프로세스 목록은 비동기적으로 실행되며 해당 입력 또는 출력이 파일 이름으로 나타납니다. 이 파일 이름은 확장의 결과로 현재 명령에 인수로 전달됩니다. >(list) 형식을 사용하는 경우 파일에 쓰면 목록에 대한 입력이 제공됩니다. <(list) 형식을 사용하는 경우 인수로 전달된 파일을 읽어야 목록의 출력을 얻을 수 있습니다. 프로세스 대체는 명명된 파이프(FIFO) 또는 열린 파일 이름을 지정하는 /dev/fd 방법을 지원하는 시스템에서 지원됩니다.