>
할수있다.
echo "text" > file
tee
할수있다.
echo "test" | tee file
sed
위의 방법을 사용하지 않고도 수행할 수 있습니까? 또는를 사용하지 않고 sed
명령 출력을 파일에 저장할 수 있습니까?>
tee
답변1
tee 및 >는 Linux에서 데이터 리디렉션을 위한 것이므로 데이터 리디렉션에 사용할 수 있습니다.
반면에 sed는 스트림 편집기입니다. sed는 tee 및 >와 같은 데이터 리디렉션에 사용되지 않습니다. 그러나 이를 수행하기 위해 명령 조합을 사용할 수 있습니다.
sed와 함께 tee 또는 >를 사용하세요.
sed 's/Hello/Hi/g' file-name | tee file
또는
sed 's/Hello/Hi/g' file-name > file
-i 옵션과 함께 sed 사용
sed -i 's/Hello/Hi/g' file-name
마지막 것은 리디렉션하지 않지만 파일 자체를 변경합니다.
답변2
sed
w
원하는 것을 수행하는 명령이 있습니다 .
w 파일 이름
현재 패턴 공간을 파일 이름에 씁니다.
sed 'w file'
그 자체로는 와 동일한 효과를 갖습니다 tee file
. 다른 sed 명령이 있으면 w
마지막에 입력하세요.
sed 's/This/That/;w file'
그러나 이는 -n/--quiet/--silent
이 옵션의 영향을 받지 않습니다. 이는 표준 출력으로 가는 내용만 억제합니다.
답변3
ankidaemon이 올바르게 지적했듯이 sed 출력을 파일에 어떻게 저장할 수 있습니까? 파일에 대해 일부 작업(예: 교체)을 수행하고 출력을 동일한 파일에 저장하려는 경우 이를 추가하고 싶습니다. 내부 편집을 가능하게 하는 -i
플래그가 있습니다 . sed
다만, 해당 접미사를 매개변수로 제공하는 경우에는 그 과정에서 백업 파일이 생성된다. 필요하지 않은 경우 빈 파일 이름을 전달하거나 -i
태그를 지정하지 않고 수행할 수 있습니다.
예: sed -i "s/from/to/" file
내부 변경 file
.