sed를 사용하여 줄 끝의 열린 괄호를 새 줄로 바꾸는 방법은 무엇입니까?

sed를 사용하여 줄 끝의 열린 괄호를 새 줄로 바꾸는 방법은 무엇입니까?

줄 끝에 open { 대괄호 오류가 있는 파일이 많아 조건에 따라 새 줄로 바꿔야 합니다.[a-z)] [{]|[a-z)][{].

입력 예:

public class Test {

}

예상 출력:

public class Test 
{

}

내 솔루션에 어떤 문제가 있나요?

sed -e '/[a-z)] [{]|[a-z)][{]/s/{/N{/g' *.java -r 

답변1

Mac에서 이 작업을 수행하고 있으므로 sed다음을 수행할 수 있습니다. sed 's/{$/\'$'\n{/'

예:

echo "public class Test {

}" | sed 's/{$/\'$'\n{/'
public class Test 
{

}

파일을 "제자리에서" 편집하려면 다음 명령을 실행하십시오.

sed -i "" 's/{$/\'$'\n{/' java

결과:

cat java 
public class Test 
{

}

여기sedMac에서 줄 바꿈 삽입에 대한 참조 입니다 .


OS X 10.11.6에서 테스트됨

답변2

간단히 이 명령을 사용할 수 있습니다.

sed -e s/{/\\n{/g *.java

{모든 항목을 a로 바꾸고 화면 \n{에 출력을 표시합니다. 파일의 텍스트를 바꾸려면 내부 옵션을 사용할 수 있습니다

sed -i s/{/\\n{/g *.java

관련 정보