하나의 파일을 추가하고,
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
다음은 pure를 사용하는 것입니다.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