모든 파일의 단어 바꾸기

iami의 이미지

안녕하세요..

예를 들어 test라는 디렉토리에 하위디렉토리및 파일 있다고 할때
모든 파일의 "test"의 단어를 "TESTING"으로 바꿀려고 하는데..

한방에 (-.-) 바꾸는 좋은 꽁수가 있을까요?

지금 완전 노가다 하고 있네여...

좋은 하루 보네세요

체스맨의 이미지

find 와 sed 를 조합하면 됩니다.

sed:
http://doc.kldp.org/Translations//html/Sed-KLDP/

Orion Project : http://orionids.org

maylinux의 이미지

for i in `find /home3/cyber/html -name \*`; do mv $i `echo $i|tr '[A-Z]' '[a-z]' `; done

제가 대문자를 모두 소문자로 바꾼 스크립트입니다.
약간만 응용하면 되겠네여

명령어를 find 를 ls 로 하시던가, 등으로 하시면 될것 같네여

아바타 제작기간~~ 무려 5초!!!

gbkwon의 이미지

iami wrote:
안녕하세요..

예를 들어 test라는 디렉토리에 하위디렉토리및 파일 있다고 할때
모든 파일의 "test"의 단어를 "TESTING"으로 바꿀려고 하는데..

한방에 (-.-) 바꾸는 좋은 꽁수가 있을까요?

지금 완전 노가다 하고 있네여...

좋은 하루 보네세요

gnu-textutils 에 보시면 tr 이라는 유틸이 있습니다..

한번 확인해 보세요.. 사용법은 메뉴얼 페이지 보세요.. 한글 메뉴얼 페이지

있습니다..

exclamation의 이미지

replaceAll 파일을 실행가능하게 권한을 바꿔 주시고.
replaceAll find_string replace_string [directory]

예를 들어 현재 디렉토리에 test를 TESTING으로 바꾸고 싶을 때,
./replaceAll test TESTING 하시면 됩니다.

원본 파일은 ~.ori가 붙어서 보존되고, 바뀔 문자열이 적용된 파일이 만들어집니다.

특정 디렉토리를 지정하고 싶으시다면,
./replaceAll test TESTING ~/exclamation
이렇게 써주시면 됩니다.

도움이 되셨으면 좋겠네요.

첨부파일로 안 들어가서 스크립트를 그대로 올렸습니다.

#!/bin/bash
#특정 디렉토리에 있는 모든 파일에서 일치하는 문자열을 모두 찾아 바꾸기.

if [ $# -ne 2 ]
then
echo "사용법 'basename $0' find_string replace_string [directory]"
exit 65
fi

if [ -n "$3" ]
then
directory=$3 # 디렉토리 이름이 인자로 주어질 경우...
else
directory=$PWD # 아니면 현재 디렉토리에 대해서.
fi

#for file in $directory/*
for file in $(find . -type f -name '*' | sort )
do
if [ $0 != $file ];then
IsMessage=$(grep "$1" -c $file)
# echo $file
# if [ $IsMessage = 0 ]; then
# echo $file No Message
# else
# echo $file Message
if [ $IsMessage != 0 ]; then
cp $file $file.ori
sed -e "s%$1%$2%" $file > $file.tmp
echo $file에서 찾아 바꾸기를 하였습니다.
mv "$file.tmp" $file
fi
fi
done

exit 0

spike의 이미지

$ find . -type f -exec perl -pi -e 's|test|TESTING|g' {} \; 이거 한줄입니다.

커널컴파일한다고 그녀를 기다리게 하지 마라.

vigor96의 이미지

vim 을 활용한 예제는..

vim `find . -type f`

이렇게 한후

:set hidden

:argdo %s/바꾸기전문자열/바꾼후문자열/gc

이렇게 하면

하나하나 확인하면서 바꿔줄 수 있습니다.

그런 후

모든 화일 저장하시려면

:wall

하시면 되고.

이것의 이점은..

하나하나 확인할 수 있다는 데 있죠.~~~~

vim6.0 이상이어야 합니다.

neibc의 이미지

$ cat > start.sh
#!/usr/local/bin/bash
for i in `find . -name "*" -print`
do
sed -e s/test/TESTING/g $i > $i.old
mv $i.old $i
done

$ ./start.sh

다들 이렇게 하실듯..저위에와 같은 방식이네요.

zienie의 이미지

윗분처럼

find 와 sed 조합을 생각했는데..

역시나 방법이 정말로 많군요.

단순 노가다 성 작업을

여러가지 재미있는 방법으로 해결 할 수 있다는것 도

리눅스가 가진 장점이 아닌가 싶네요 ^^

##########################################################
넘어지는건 아직 괜찮다.
하지만 넘어질때마다 무언가를 주워서 일어나자.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.