2017-12-28 2 views
0

예를 들어, 나는 다음과 같은 항목이 파일이 있습니다 -어떻게 값의 집합 후 특정 문자열을 추가 할 수

10.59.37.9  strvasr5267 
10.59.37.11  strvasr5268 
10.59.37.15  strvasr5279 
10.59.37.16  strvasr5303 

을 그리고 난 같은 각 호스트 이름 뒤에 # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"를 추가 할 -

10.59.37.9 strvasr5267 # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3" 

ip와 hostname을 모두 읽을 수 있고 호스트 이름 다음에 위의 문자열을 추가 할 수있는 루프가 있습니까?

+2

모든 줄에 상수 문자열을 추가하려는 것처럼 보이면 왜 각 줄의 IP와 이름을 읽어야합니까? –

+0

yes.correct .i 영원 후 영속 문자열을 추가하려고합니다. –

답변

0

문자열을 추가하려는 경우

sed -i 's/$/ # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"/' file 

당신은 쉘 루프에서 IP와 호스트 이름을 사용해야하는 경우 :

while read -r ip name; do 
    do_something_with "$ip" "$name" 
    printf '%s\t%s\t# "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"\n' "$ip" "$name" 
done 
+0

이'sed'는 행이 비어있는 경우 문자열을 추가합니다. – iamauser

+0

@iamauser 공백이 아닌 문자가있을 때만 줄을 수정하는 문자열/'file'은 [sed]/[^ [: blank :]]/s/$ / –

0

당신은 간단한 sed 명령을 사용하여 각 줄의 끝에 상수 문자열을 추가 할 수 있습니다

sed -i 's/[0-9].*$/& # "TRENDS:*,netstat:netstat|netstat1|netstat2|netstat3"/g' file 

OP가 지적했듯이, 왜 파일 안에있는 IP를 읽을 필요가 있습니다. 업데이트 된 답변을 받으려면 질문을 업데이트하십시오.

관련 문제