awk cat 명령의 사용법을 이해하지 못할 것 같아서 알고 싶습니다.
~ 안에이 페이지그는 나에게 그의 코드를 사용하라고 제안했습니다
먼저 다음과 같이 처리해야 합니다 g2.txt
.
cat join2.awk
BEGIN {
OFS=FS=";"
}
ARGIND == 1 {
map[$2] = ($2 in map ? map[$2] OFS : "") $1
next
}
{
r = $0;
for (i=1; i<=NF; ++i)
if ($i in map)
r = r OFS map[$i]
$0 = r
}
1
그런 다음 다음과 같이 사용하십시오.
awk -f join2.awk g2.txt g1.txt
cat join2.awk
그러나 나는 그의 추가 코드에서 이 명령을 어떻게 사용하고 구현하는지 이해하지 못합니다 . 일반적으로 명령줄에서 을 사용하는데 awk -f join2.sh g2.txt g1.txt
, 왜 그렇습니까 join2.awk
? (저는 Windows에서 awk를 사용합니다)
이것은 내 원래 코드인 Join2.sh입니다.
#! /usr/bin/awk -f
BEGIN {
OFS=FS=";"
C=0;
}
{
if (ARGIND == 1) {
X = $NF
T0[$NF] = C++
$NF = ""
if (T1[X]) {
T1[X] = T1[X] $0
} else {
T1[X] = $0
}
} else {
X = $NF
T0[$NF] = C++
$NF = ""
if (T2[X]) {
T2[X] = T2[X] $0
} else {
T2[X] = $0
}
}
}
END {
for (X in T0) {
# concatenate T1[X] and X, since T1[X] ends with ";"
print T1[X] X, T2[X]
}
}
어떻게 사용하는지 이해가 안 돼요그의추가 코드. 내 것으로 통합해야 하나요? 다른 스크립트를 만들어야 합니까?
무슨 뜻이에요 "g2.txt
먼저 이렇게 처리해야합니다?
이 코드를 실행하는 방법은 무엇입니까?보여 주시겠어요? 충분하지 않기 때문에 awk -f join2.awk g2.txt g1.txt
이전에 사용할 수 있는 방법을 찾아야 cat join2.awk
하고 그의 코드를 어떻게 구현하고 실행하는지 이해가 되지 않습니다.
cat join2.awk
BEGIN {
OFS=FS=";"
}
ARGIND == 1 {
map[$2] = ($2 in map ? map[$2] OFS : "") $1
next
}
{
r = $0;
for (i=1; i<=NF; ++i)
if ($i in map)
r = r OFS map[$i]
$0 = r
}
1