2009-11-22 10 views
4

텍스트 파일의 행 바꾸기

default_color acolor 

이 줄을 바꾸고 싶습니다.
default_color anothercolor 
default_color anothercolor 

첫 번째 줄을 모르며 두 번째 줄은 변수에 포함되어 있습니다. 어떻게해야 bash에서 그것을 할 수 있습니까?

감사합니다.

답변

7

감사하지만, 다른 콘솔 도구가있는 경우,

cat your_file | sed "s/default_color\ .*/default_color\ $VAR/" 
+6

왜 고양이입니까? 그냥 그것을 sed. – ustun

+0

그것이 작동합니다! 감사합니다 그냥 "sed"s/default_color \. */default_color \ $ VAR/"file> newfile"을 사용합니다. –

+1

파일을 변경하려면 리디렉션이 필요하지 않습니다. 이를 위해 -i 스위치를 사용하십시오. – ustun

0

당신은 AWK를 사용할 수있는 뭔가를하려고합니다. 수동 항목은 여기에 있습니다 : 그 색상 형식에 따라 달라집니다 나는이 정규 표현식이 필요 쓰지 않습니다,하지만이 법안을 맞는

http://ss64.com/bash/awk.html

. 행운을 빌어 요.

0

사용

awk '$2=="defaultcolor"{$2="anothercolor"}1' file 

하거나 bash는 쉘 둔한없이 외부 명령

while read -r line 
do 
case "$line" in 
    *defaultcolor*) line=${line/defaultcolor/anothercolor} 
esac 
echo $line 
done <"file" 
-1

별로 떠들썩한 파티 솔루션,하지만 당신은 파일의 수를 들어, 현재 위치에서 교체 할 수있는, with perl :

 
perl -i -npe 's/default_color acolor/default_color another_color/' list_of_files 
관련 문제