grep 또는 리눅스 shell명령어로 특정text삭제

grep 또는 리눅스 shell명령어로 특정text삭제

QA

grep 또는 리눅스 shell명령어로 특정text삭제

답변 6

본문


에디터로 등록한 내용중 파일명길이가너무길어서 빨간색부분을 전체적으로 잘라주려고합니다.
아래와같은 내용이있을때 빨간부분을 전체삭제해주려고합니다
sql파일로다운받은후 grep난 다른명어러로 일괄작업하는방법을알고싶네여

1.title테그 전체지우기
2. 이미지url중 빨간색부분삭제

<img src="/data/editor/1504/1234579b7cea7b308816056545d5d65_1428691509_105.jpg" title="08819036545d5da9c_142509.jpg">

<br style="clear:both;">

<img src="/data/editor/5604/634321279b79877b30881635545d5da65_1428691509_5218.jpg" title="088195da9c_1428691509_5218.jpg">

<br style="clear:both;">

<img src="/data/editor/2404/6543379b98887b305439036545d5da77_1428691510_0038.jpg" title="a7b308819036545d5da9c_1428691510_0038.jpg"> 

이 질문에 댓글 쓰기 :

답변 6

Linux에서 파일을 수정하는 명령어는 sed라고 있습니다.

 

파일이 많지 않다고 하면, vi같은 에디터를 사용하면 될것 같습니다.

 

vi를 쓴다고 하면.  

 

빨간색 부분에 대한 패턴을 찾기는 어려울 것 같네요..

 

search를 /data/editor로 찾은 후에..  커서를 옮겨서 숫자부분만 지우셔야 될것 같습니다.

 

첫번째는 32개, 두번째는 34개, 세번째는 33개네요 (빨간색)

양이 몇천개가넘어서요...

editor/숫자4개/ 로시작하고 로끝나며 끝은 ****.jpg  

이런식으로찾아서 지워야할거같은데 답을못찾겟네여 

sed를 공부해 보셔야 될것 같습니다. 문제는  빨간색 부분을 카운트하는 것이겠네요
언더바까지 찾는 것은 정규식으로 해결해야 될것 같습니다.

구글을 해 보니..  http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Tip/StringReplace

====================
HTML 태그를 없애기 위해서 다음과 같이 sed 코드를 만들었다.
# sed -e 's/<.*>//g' test.txt

우리가 원하는 결과는 "This is what meant."이지만, 실제 결과는 " meant."다. 위의 정규식 대로라면 처음 등장하는 <과 마지막 등장하는 >사이의 모든 문자를 치환해 버리기 때문이다. 다음과 같이 표현식을 바꿔서 원하는 결과를 얻을 수 있다.
$ sed -e 's/<[^>]*>//g' test.txt
[^>]에서 ^는 none의 의미다. 해석하면 "<이 등장한 다음에 처음 등장하는 >" 사이의 문자와 일치한다 라는 의미가 된다.
====================

저같은 경우는 해당 디렉토리를 통째로지우는게 좋을꺼라 생각이 듭니다.

 

rm -rf ./data/editor/2404  이런식으로 지우시면 될듯합니다.


디렉토리명을 shell 로 ls -la  > directrody.txt 로 저장하시고


나중에 directrody.txt 를 활용하여 디렉토리만 다시 만들면 되지 않을까 생각됩니다.


쉽게 해결될듯합니다.

 

디렉토리를지우면 파일도같이 지워지는데.ㅡ.ㅡ

사진에서 맨아래 파일처럼

db에서 _전까지있는 text를 지워주고 서버에있는 파일이름은

백업받은후에 윈도우에서 일괄바궈주는작업하려고하거든요 db에서 지우는방법을몰라서여

29258b826c30b4801743985d0b1f7643_1448187708_6162.jpg
 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 59,836
© SIRSOFT
현재 페이지 제일 처음으로