한 줄씩 다른 파일에 줄을 추가합니다.

한 줄씩 다른 파일에 줄을 추가합니다.

파일을 추가하고,

011C0201.WAV
011C0202.WAV
011C0203.WAV
011C0204.WAV
011C0205.WAV

다른 파일 다음에,

52 601
39 608
56 1016
39 416
65 335

결과는 다음과 같습니다. 또한 탭으로 구분됩니다.

011C0201.WAV    52_601_011C0201
011C0202.WAV    39_608_011C0202
011C0203.WAV    56_1016_011C0203
011C0204.WAV    39_416_011C0204
011C0205.WAV    65_335_011C0205

이게 내가 한 일이야

awk '
NR==FNR { start=$1; end=$2; next}
{ print $0 start end }
' WSJ_310P_PC_16k.epd WSJ_310P_PC_16k.spt > tmp

하지만 작동하지 않습니다. 내가 뭘 잘못했나요?

답변1

paste+어때요 awk?

$ paste one another | 
    awk '{print $1, $2 "_" $3 "_" substr($1,1,length($1)-4)}' OFS='\t'
011C0201.WAV    52_601_011C0201
011C0202.WAV    39_608_011C0202
011C0203.WAV    56_1016_011C0203
011C0204.WAV    39_416_011C0204
011C0205.WAV    65_335_011C0205

이 작업을 완전히 수행하려는 경우 awk:

awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $1 "_" $2 "_" substr(a[FNR],1,length(a[FNR])-4)}' OFS='\t' one another

답변2

이것은 순수하다awk

awk '
    NR==FNR {a[NR]=$0; next}
    {
        split(a[FNR],b,".");
        printf "%s\t%s_%s_%s\n", a[FNR], $1, $2, b[1]
    }
' file1 file2

관련 정보