私のファイルへのシンボリックリンクを作成したいです(合計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
今2つの列があるので、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
2つの列を含むテキストファイルはどこにありますか?
編集:デフォルトのハードリンクの代わりにシンボリックリンクが必要だとし、cmd呼び出し-s
にフラグを追加しました。ln