次のデータがあります。
dir1
|___dir2
|___dir3
|____files
|____TGH4_1.tar.gz
|____TGH4_2.tar.gz
|____IOP5_1.tar.gz
|____IOP5_2.tar.gz
|____RGH2_btre_1.tar.gz
|____RGH2_btre_2.tar.gz
|____QWE6_btre_1.tar.gz
|____QWE6_btre_2.tar.gz
フォルダ内に次のコードを使用してdir3
スクリプトを作成しました。test.awk
BEGIN {
FS="[/_]"; OFS="\t"
print "sample", "Second", "Third"
}
NR%2 { second = $0; next }
{ print $2, second, $0 }
以下を使ってtest.awk
ファイルを作成しました。
printf '%s\n' $PWD/files/* | awk -f test.awk > test.txt
私が得た結果はtest.txt
次のとおりです。
sample Second Third
dir1 /dir1/dir2/dir3/H0032/files/TGH4_1.tar.gz /dir1/dir2/dir3/H0032/files/TGH4_2.tar.gz
dir1 /dir1/dir2/dir3/H0032/files/IOP5_1.tar.gz /dir1/dir2/dir3/H0032/files/IOP5_2.tar.gz
dir1 /dir1/dir2/dir3/H0032/files/RGH2_btre_1.tar.gz /dir1/dir2/dir3/H0032/files/RGH2_btre_2.tar.gz
dir1 /dir1/dir2/dir3/H0032/files/QWE6_btre_1.tar.gz /dir1/dir2/dir3/H0032/files/QWE6_btre_2.tar.gz
出力は次のようになります。
sample Second Third
TGH4 /dir1/dir2/dir3/H0032/files/TGH4_1.tar.gz /dir1/dir2/dir3/H0032/files/TGH4_2.tar.gz
IOP5 /dir1/dir2/dir3/H0032/files/IOP5_1.tar.gz /dir1/dir2/dir3/H0032/files/IOP5_2.tar.gz
RGH2_btre /dir1/dir2/dir3/H0032/files/RGH2_btre_1.tar.gz /dir1/dir2/dir3/H0032/files/RGH2_btre_2.tar.gz
QWE6_btre /dir1/dir2/dir3/H0032/files/QWE6_btre_1.tar.gz /dir1/dir2/dir3/H0032/files/QWE6_btre_2.tar.gz
答え1
変更:
BEGIN { FS="[/_]" ... }
...
{ print $2, second, $0 }
到着する:
BEGIN { FS="/" ... }
...
{
sample = $NF
sub(/_[^_]*$/,"",sample)
print sample, second, $0
}
dir1
あなたのコードは与えられたFS設定の2番目のフィールドなので、印刷中で、あなた/dir1/dir2/dir3/H0032/files/TGH4_2.tar.gz
のコードはそれを表示していますprint $2...
。