당신이 리눅스 커맨드라인에 힘을 기울이고 있고 당신이 맞은편에서 올 때 큰 파일이나 당신이 어떤 텍스트를 발견하고 텍스트의 각 실례 위로 붙이는 다른 하나와 바꾸어야 하는 많은 파일이 소비되어서 약간 시간일 수 있다. 더 이상 글쎄 걱정하지 말았어라. 리눅스는 당신을 위해 단지 솔루션을 가진다. 여기 ’s은 자동적으로 줄지어 간다.
이 운동을 위해 우리는“ sed이라고 불리는 리눅스 명령 라인 도구를 이용할 것이다. ” ” sed”이 매우 강력하고 다재다능한 도구이고 많은 것이 그것의 능력에 대해 쓰이어 질 수 있다. 우리는” 여기“ sed의 매우 한정된 모습을 이용하고 있다. 나는 정확하게” 당신이 그것의 이 모습이 재미 있다는 것을 안다면 당신이“ sed(위)에 a little more을 공부하도록 권할 것이다.
우리는 다음 구문을 이용하여 일련의 텍스트를 찾고 파일에(서)대신할 것이다:
’filename.txt # sed’ -i s/[orginal text/new text]
당신이 파일을” 그것에(서)당신의 데이터베이스 서버의 인터넷 프로토콜 주소의 매우 많은 실례와 더불어“ database.txt이라고 불리게 한다고 말해라. 당신이 방금 새로운 데이터베이스 서버로 전환했고 그것을 새로운 서버로 업데이트해야 한다. ’s 인터넷 프로토콜 주소. 오래된 인터넷 프로토콜 주소가 192.168.1.16이고 새로운 그것은 192.168.1.22이다. 여기 ’당신이 그것에 어떻게 착수하는 s:
# 고양이 database.txt
LOCAL DATABASE = 192.168.1.16
LOCAL DIR = /home/calvin/
PROD DB = 192.168.1.16
# sed’ -i s/192.168.1.16/192.168.1.22/g ’ database.txt
# 고양이 database.txt
LOCAL DATABASE = 192.168.1.22
LOCAL DIR = /home/calvin/
PROD DB = 192.168.1.22
지금 파일“ database.inc와” 새로운 인터넷 프로토콜 주소가 있었는지 볼 당신의 오래된 것의 체크를 공개해라. 여기 ’상기한 명령의 분열 s. 처음(에)당신은“ sed” 명령을 부른다. 그때 당신은“ 대신에 그것” 서 있는 파라미터“ -s을 지나간다. ”지금 우리는“ regex” 으로서 일반적으로 다음 비트로 알려 져서 레귤러 표현의 a little bit을 이용한다. ”인용된 스트링에(서)“s은“ 대체물을 의미한다. ”그리고” 끝에(서)“g은“ 세계적이게 서 있다. ”그들 사이에(서)그들은“ 당신이 두는 안에 그들 사이에(서)텍스트의 스트링 세계적인 대체를 초래한다.
당신은” 끝에(서)임의로“ g을 뛰어넘을 수 있다. 이것은 어느 것이 실질적으로 스트링의 첫번째 실례만의 일렬로 대체로 옮긴다 대체가 세계적이지 않을 것이라는 것을 의미한다. 당신이 텍스트의 다중 실례와 더불어 라인을 가졌다면 그렇게 당신은 여기에(서)대신하는 데에 참기 어렵다. ’s 무엇이 일어날 것이다.
# 고양이 database.txt
LOCAL DATABASE = 192.168.1.16
LOCAL DIR = /home/calvin/
PROD DB = 192.168.1.16,192.168.1.16
# sed’ -i s/192.168.1.16/192.168.1.22/ ’ database.txt
# 고양이 database.txt
LOCAL DATABASE = 192.168.1.22
LOCAL DIR = /home/calvin/
PROD DB = 192.168.1.22,192.168.1.16
진정한 마술은 온다. 지금 당신이 일련의 단지 일렬로 그러나 당신이 안에 있는 전체 디렉토리에(서)텍스트를 바꾸지 않고 싶다고 말해라. 당신이“ 와인을 찾고“ champagne”와 더불어 대신해야 하는 텍스트 많은 파일이 있다. ”
# 발견. -maxdepth 1“” -name *.txt -type f -exec sed’’ -i s/wine/champagne/
우리는 현재 디렉토리에(서)모든 텍스트 파일의 목록을 입수하기 위한 발견 명령을 이용한다. 그것 ’“발견 s. -maxdepth“” -name *.txt -type f 1” 개 부분. “. maxdepth 1″이 컴퓨터에게 현재 디렉토리를 들여다보고 현재 디렉토리보다 깊게 들어가지 않는다고 말한다는 것을 알아라. ‘-name ” *.txt ”‘ 부분은“ .txt의 확장과 더불어 발견을 목록 파일만에게 말한다. ”그때“ -type f” 섹션은” 단지“ 발견이 정확하게 어울리는 파일을 골라야 하는 것을 명시한다. 마침내“ -exec” 부분은” 이 경우에는” 텍스트-“sed’’ -i s/wine/champagne/을 대신하기 위한“ sed 명령이 뒤따르는 명령을 수행할“ 찾는다고 말한다. ”
상기한 명령이 보이는 I realize 은 복잡해졌다. 일단 당신이 a little bit 그것을 이용하면 그러나 당신은 아마 그것이 그것을 메모하고 그것을 이용할 가치가 있을 것이라는 사실을 깨달을 것이다. 지금 일련의 다중 수준의 디렉토리에(서)텍스트를 바꾸려고 해라.
북마크와 몫





























1이… 아래 그것을 읽었다고 말하거나 그것을 더한다.
그때 > 당신은 내가 그것이 p>임 에 틀림 없다고 생각한다 그것 /> hich이 세우는 장소 ofbr에(서)을 위해 파라미터를 지나간다.
코멘트를 남겨라