sed를 사용하여 변수의 줄 번호 바꾸기

sed를 사용하여 변수의 줄 번호 바꾸기

이것은 내 sed명령입니다:

while ...;
do sed -r "${counter}s/^\S+ /$line /g" $in > $out;
..
..
done

불행하게도 이 명령은 bash 스크립트/루프 내에서 호출될 때 아무 작업도 수행하지 않습니다. 따라서 변수가 올바른 방식으로 구문 분석되었는지 확인하고 싶습니다.

do echo ´sed -r "${counter}s/^\S+/$line/g" $in > $out´;

다음을 콘솔에 인쇄하세요.

sed -r <line number>/^\S+/<replace pattern>/g <infile> > <outfile>

(' 없이) 콘솔에서 이 명령을 실행하면 다음과 같은 결과가 나타납니다.

sed: -e expression #1, char 8: unterminated s' command

'주변에 패턴이 없어서 그런 것 같아요 .

그렇다면 bash 스크립트에서 호출할 때 큰따옴표(sed 명령에서 변수를 구문 분석하는 데 사용됨)와 작은따옴표(검색/바꾸기 패턴을 완성하는 데 사용됨)를 어떻게 결합합니까?

답변1

글쎄요, 이상해요. 출력 파일에 대한 리디렉션은 발생하지 않으며 적어도 예상되는 대체는 발생하지 않습니다. cp <infile> <outfile>다음 sed 교체 명령을 사용하는 A제자리에기적적으로 작동합니다....

당신의 도움을 주셔서 감사합니다!

관련 정보