해당 파일 이름을 기반으로 심볼릭 링크 생성

해당 파일 이름을 기반으로 심볼릭 링크 생성

내 파일에 대한 심볼릭 링크를 만들고 싶습니다(총 350개 파일)

cd ./my_files
PD26400a.fixedheader.hs37d5.cram
PD26400a.fixedheader.hs37d5.cram.crai
...

my_files 디렉터리(열 2)의 각 파일 이름이 이전 이름(열 1)과 일치하는 텍스트 파일이 있습니다.

SAMEA3471108.fixed.GRCh37d5.cram  PD26400a.fixedheader.hs37d5.cram
SAMEA3471108.fixed.GRCh37d5.cram.crai  PD26400a.fixedheader.hs37d5.cram.bai
SAMEA3471112.fixed.GRCh37d5.cram  PD26400b.fixedheader.hs37d5.cram
SAMEA3471112.fixed.GRCh37d5.cram.crai  PD26400b.fixedheader.hs37d5.cram.bai

심볼릭 링크를 생성하고 이 출력을 얻고 싶습니다.

SAMEA3471108.fixed.GRCh37d5.cram -> PD26400a.fixedheader.hs37d5.cram
SAMEA3471108.fixed.GRCh37d5.cram.crai -> PD26400a.fixedheader.hs37d5.cram.bai
SAMEA3471112.fixed.GRCh37d5.cram -> PD26400b.fixedheader.hs37d5.cram
SAMEA3471112.fixed.GRCh37d5.cram.crai -> PD26400b.fixedheader.hs37d5.cram.bai

어떻게 해야 하나요?

답변1

이제 두 개의 열이 있으므로 awk를 사용해 보셨나요?

echo 'SAMEA3471108.fixed.GRCh37d5.cram  PD26400a.fixedheader.hs37d5.cram' | awk '{print $1, "->", $2}'
SAMEA3471108.fixed.GRCh37d5.cram -> PD26400a.fixedheader.hs37d5.cram

다음과 같은 것을 사용할 수 있습니다.

awk '{ system("ln $1 $2") }

답변2

$ < <(awk 'NF==2 {print "ln -s -T "$1 " " $2}' filein) xargs -0 bash -c  

filein두 개의 열이 포함된 텍스트 파일은 어디에 있습니까?

편집: 기본 하드 링크 대신 심볼릭 링크를 원한다고 가정하고 cmd 호출 -s에 플래그를 추가했습니다 .ln

관련 정보