# Nexae Linux servers
##
subparent Nexas Nexae_NIX Linux
title Nexae Linux servers
group-eorted NFe zluetere
10.48.37.67 zintxzpanae01 # teetip NOzOLUMNe:info,trende
10.59.31.67 etrtxzpanae01 # teetip NOzOLUMNe:info,trende
group-sorted ZBTS
10.48.37.11 zinpl001z3a01 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.12 zinpl001z3a02 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.13 zinpl001z3a03 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.14 zinpl001z3a04 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.41 zinpl001z3b01 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.42 zinpl001z3b02 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.31 zinvl201a3001 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.32 zinvl201a3002 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.33 zinvl201a3003 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.150 zinvl201a3004 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.151 zinvl201a3005 #"TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.152 zinvl201a3006 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.20 zinvl201a3007 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.39 zinvl201a3008 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.65 zinvl201a3009 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.66 zinvl201a3010 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.70 zinvl201a3011 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.158 zinvl201a3012 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.48.37.34 zinvl201a3013 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
group-sorted NTTA
10.59.31.11 etrpl001z1a01 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.12 etrpl001z1a02 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.13 etrpl001z1a03 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.14 etrpl001z1a04 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.31 etrvl201a1001 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.32 etrvl201a1002 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.33 etrvl201a1003 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.150 etrvl201a1004 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.151 etrvl201a1005 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.152 etrvl201a1006 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.44 etrvl201a1008 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.47 etrvl201a1009 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.39 etrvl201a1010 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.65 etrvl201a1011 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.66 etrvl201a1012 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
10.59.31.70 etrvl201a1013 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
170.252.208.216 etrvl201a1007 # "TRENDe:*,netetat:netetat|netetat1|netetat2|netetat3"
#######################################################
##
위는 파일의 예입니다 HO
. 아래 코드를 사용하여 sed
파일의 키워드를 일치시킨 다음 파일의 모든 항목을 .group-sorted NTTA
ho
t4
ho
sed -i.bak '/^group-sorted NTTA$/!b;N;N;r t4' ho
그런데 파일에 키워드가 group-sorted NTTA
15번 나오니까 중간 키워드 뒤에 항목을 삽입하고 싶다면. 내가 이걸 할 수 있을까 sed
?
답변1
파일 t4의 내용을 n
-th 발생 두 줄 이후에 파일 H0에 삽입하려면 다음을 시도하십시오.^group-sorted NTTA$
awk -v n=2 'FNR==NR{t=t"\n"$0;next} /^group-sorted NTTA$/ && n==++cnt {x=NR+3} NR==x{print substr(t,2)} 1' t4 H0
sed
의심할 여지 없이 이 문제에 대한 해결책이 있지만 산술을 아는 awk
경우 더 자연스러운 선택이 있습니다 awk
. 예를 들어, 이렇게 하면 변수가 처음 발생한 후에 무언가를 수행하도록 프로그래밍하는 것이 awk
더 쉬워 집니다.n
n
어떻게 작동하나요?
-v n=2
그러면 값이 설정됩니다
n
.FNR==NR{t=t"\n"$0;next}
첫 번째 파일을 읽으면
t4
해당 내용이 변수에 저장됩니다t
./^group-sorted NTTA$/ && n==++cnt {x=NR+3}
두 번째 파일을 읽을 때
H0
발생 횟수가^group-sorted NTTA$
변수에 저장됩니다cnt
. 같으면 변수에cnt
현재 줄 번호 에 3을 더한 값을 할당합니다.n
x
NR
NR==x{print substr(t,2)}
줄 번호에 도달하면
x
변수의 내용을 인쇄합니다t
. (이substr
명령은 추가 선행 개행 문자를 제거합니다.)1
이는 현재 행을 인쇄하는 awk의 약어입니다.
예
다음 입력 파일을 고려하십시오.
$ cat H0
blah, blah
group-sorted ZBTS
10.48.37.11 zinpl001z3a01 #"TRENDe
10.48.37.12 zinpl001z3a02 #"TRENDe
group-sorted NTTA
10.59.31.11 etrpl001z1a01 # "TRENDe
10.59.31.12 etrpl001z1a02 # "TRENDe
10.59.31.13 etrpl001z1a03 # "TRENDe
group-sorted NTTA
10.59.31.14 etrpl001z1a04 # "TRENDe
10.59.31.31 etrvl201a1001 # "TRENDe
10.59.31.32 etrvl201a1002 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe
그리고:
$ cat t4
line 1 of t4
line 2 of t4
명령의 출력은 다음과 같습니다.
$ awk -v n=2 'FNR==NR{t=t"\n"$0;next} /^group-sorted NTTA$/ && n==++cnt {x=NR+3} NR==x{print substr(t,2)} 1' t4 H0
blah, blah
group-sorted ZBTS
10.48.37.11 zinpl001z3a01 #"TRENDe
10.48.37.12 zinpl001z3a02 #"TRENDe
group-sorted NTTA
10.59.31.11 etrpl001z1a01 # "TRENDe
10.59.31.12 etrpl001z1a02 # "TRENDe
10.59.31.13 etrpl001z1a03 # "TRENDe
group-sorted NTTA
10.59.31.14 etrpl001z1a04 # "TRENDe
line 1 of t4
line 2 of t4
10.59.31.31 etrvl201a1001 # "TRENDe
10.59.31.32 etrvl201a1002 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe
답변2
입력 파일 1
cat H0
blah, blah
group-sorted ZBTS
10.48.37.11 zinpl001z3a01 #"TRENDe
10.48.37.12 zinpl001z3a02 #"TRENDe
group-sorted NTTA
10.59.31.11 etrpl001z1a01 # "TRENDe
10.59.31.12 etrpl001z1a02 # "TRENDe
10.59.31.13 etrpl001z1a03 # "TRENDe
group-sorted NTTA
10.59.31.14 etrpl001z1a04 # "TRENDe
10.59.31.31 etrvl201a1001 # "TRENDe
10.59.31.32 etrvl201a1002 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe
입력 파일 2
cat t4
10
20
주문하다
c=`sed -n -e '/group-sorted NTTA/{=;p;}' H0| sed "N;s/\n/ /g" | awk '{print $1}' | sed -n ''$y'p' | awk '{print 2 + $1}'`;sed ''$c'r t4' H0
산출
blah, blah
group-sorted ZBTS
10.48.37.11 zinpl001z3a01 #"TRENDe
10.48.37.12 zinpl001z3a02 #"TRENDe
group-sorted NTTA
10.59.31.11 etrpl001z1a01 # "TRENDe
10.59.31.12 etrpl001z1a02 # "TRENDe
10.59.31.13 etrpl001z1a03 # "TRENDe
group-sorted NTTA
10.59.31.14 etrpl001z1a04 # "TRENDe
10
20
10.59.31.31 etrvl201a1001 # "TRENDe
10.59.31.32 etrvl201a1002 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe
group-sorted NTTA
10.59.31.33 etrvl201a1003 # "TRENDe
10.59.31.150 etrvl201a1004 # "TRENDe
10.59.31.151 etrvl201a1005 # "TRENDe