숫자 주위에 괄호 추가

숫자 주위에 괄호 추가

숫자로 가득 찬 파일이 있습니다.

1 6 8 9 10 11

각 숫자를 괄호로 묶고 싶으므로 기본적으로 최종 출력은 다음과 같습니다.

(1) (6) (8) (9) (10) (11)

등.

답변1

노력하다 sed:

sed -i.bak 's/[0-9]\+/(&)/g' file.txt

sed교체 에서는 [0-9]\+연속된 숫자를 (&)일치하는 숫자 주위의 괄호로 바꿉니다. g이는 일치하는 모든 패턴에 대해 이 교체가 수행된다는 의미입니다. 그렇지 않으면 첫 번째 일치 패턴만 교체됩니다.

작업 후 수정된 파일은 file.txt이고 원본 파일은 그대로 유지됩니다 file.txt.bak. 원본 파일을 백업하는 것이 더 좋습니다. 백업하지 않으려면 다음을 사용하세요.

sed -i 's/[0-9]\+/(&)/g' file.txt

답변2

숫자만 캡처하려면 awk를 사용하십시오(빈 줄은 인쇄되지 않습니다).

awk '{for(i=1; i<=NF; i++) if($i ~ /[[:digit:]]/) $i="("$i")"} NF{print}' file

답변3

xargs printf '(%d) ' <infile

질문의 예와 같은 출력은 각각 하나 이상의 공백으로 구분된 최대 20개 정도의 숫자 시리즈에서 얻을 수 있습니다.

관련 정보