
.txt 파일 쌍 세트가 있습니다. 각 파일 쌍에서 File1에는 단일 정수가 포함되고 File2에는 여러 줄의 텍스트가 포함됩니다. 제가 작성 중인 스크립트에서는 File1의 정수를 사용하여 File2의 맨 위에서 몇 줄을 떼어낼지 지정한 다음 해당 줄을 다른 파일에 쓰고 싶습니다. 나는 많은 파일 쌍에서 이것을 병렬로 실행하기 위해 gnu-parallel을 사용하고 있습니다.
-n
이를 수행하는 간단한 방법은 File1의 내용을 옵션의 매개변수로 전달하는 것인 것 같습니다 head
. 이것이 가능합니까? xargs
and 를 사용해 보았지만 cat File1
둘 다 작동하지 않습니다.
파일 쌍의 예:
File1:
2
File2:
AAA
BBB
CCC
DDD
원하는 출력:
File3:
AAA
BBB
head
gnu-parallel을 사용하지 않았다면 File1의 내용을 변수에 할당할 수 있었습니다(물론 이를 's' 옵션 에 전달할 수 있을지는 모르겠지만 -n
). 그러나 병렬은 {}
이 접근 방식을 복잡하게 만드는 것 같습니다.
필요한 경우 추가 정보를 제공할 수 있습니다.
답변1
답변2
Gilles 답변 확장 :
parallel 'head -n "$(cat {1})" {2}' ::: File1s* :::+ Corresponding_File2s*
아마도 File2에 연결하려는 File1이 많이 있을 것입니다. :::+가 그렇게 합니다.