Page tree

Contents


Stream editor 인 sed 사용법


파일내 특정 패턴 치환

sonatype nexus 에 등록된 artifact 의 groupID가 example 로 시작되어 com.example 으로 일괄 변경하고 싶음


해당 정보는 maven의 pom 파일에 정의되어 있고 다음과 같은 형식을 갖음

docuoncert/2.0/docuoncert-2.0.pom
 <?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>example</groupId>
  <artifactId>myartifact</artifactId>
  <version>2.0</version>
  <description>POM was created by Sonatype Nexus</description>
</project>                   

위의 <groupId>example</groupId>  를  <groupId>com.example</groupId>로 치환

find . -name \*pom -exec grep "<groupId>example" /dev/null {} \;|awk -F: '{print "sed -i '\'s'/groupId>example/groupId>com.example/'\'' "$1}'|sh -x


sed 의 i 옵션은 -i[SUFFIX], --in-place[=SUFFIX] 로 stdout 에 변경된 파일을 출력하지 않고 해당 파일의 내용을 직접 변경함


nginx 의 port 변경

-e 옵션을 사용하여 여러 개의 명령어를 실행할 수 있음. nginx 의 가상 호스트 설정중 80, 443 포트를  8080, 8443 으로 변경

#!/bin/sh


for i in /etc/nginx/sites-available/*; do cp $i $i.org; sed -e 's/\<80\>/8080/g' -e 's/\<443\>/8443/g' < $i.org > $i;done


nginx 가상호스트 링크

nginx 의 가상 호스트 지정은 sites-available 폴더에 하고 활성화는 site-enabled 에 하기 위해 sites-available 에 있는 모든 파일을 symbolic link

#!/bin/sh

for s in /etc/nginx/sites-available/*;do
    t=`echo $s|sed 's/sites-available/sites-enabled/'`;
    ln -sf $s $t;
done


ubuntu 미러 변경



Ref


This page has no comments.