$ cat text.txt
my name is Steven
my age is 10
i like dogs
어떤 명령이 더 적절하고 대체 echo "Kate"
할 수 있습니까 ?Steven
text.txt
답변1
반드시 다음 과 함께 echo "Kate"
사용해야 하는 경우 awk
:
echo "Kate" | awk 'NR==FNR{a=$0;next} sub("Steven", a, $0)1' - file
- 표준 입력은
Kate
에서 오고echo "Kate"
로 파이프됩니다awk
. awk
그런 다음 표준 입력(-
)을 읽습니다.NR==FNR
첫 번째 파일이 처리되는 동안(stdin) 조건은 true입니다. 변수는a
이 값으로 설정됩니다.file
그런 다음 입력이 처리되어 값으로sub()
대체됩니다 .Steven
a
- 이는
sub()1
문의 패턴이며 대체 발생 여부에 관계없이 항상 true를 반환합니다. 동등한 조치가 없으므로{ print }
교체 후 각 행이 인쇄됩니다.
그러나 더 좋은 방법은 을 사용하는 것입니다 sed
.
sed 's/Steven/Kate/' file
파일을 적절하게 변경하려면 다음을 사용하십시오.
sed -i 's/Steven/Kate/' file