한 줄에서 처음 나타나는 문자만 바꾸기

한 줄에서 처음 나타나는 문자만 바꾸기

다음과 같은 수천 줄의 줄이 있습니다.

{"100K";"0.00001";"10";"0.01"]}
{"101K";"0.0001";"100";"0.1"]}
{"102K";"1";"1000";"1"]}
{"102K";"1";"1000";"1"]}
{"103K";"0.01";"10000";"10"]}
{"104K";"0.1";"100000";"100"]}
{"105K";"1";"1000000";"1000"]}
{"109K";"0.000001";"1";"1"]}
{"120K";"0.000012";"12";"12"]}

;나는 줄의 첫 번째 항목을 다음으로 바꾸고 싶습니다 .:[

이 줄을 다음과 같게 만드십시오.

{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}

이 작업을 수행하려면 sed 또는 기타 UNIX 명령을 어떻게 사용합니까?

답변1

sed 's/;/:[/' file

{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}

답변2

귀하의 질문에 다음 태그를 지정했으므로:

awk '{ sub(/;/, ":["); print; }'

답변3

다음 2가지 명령을 사용해 볼 수도 있습니다.

perl -pne "s/;/:[/" filename
sed 's/;/:[/1' filename

산출:

{"100K":["0.00001";"10";"0.01"]}
{"101K":["0.0001";"100";"0.1"]}
{"102K":["1";"1000";"1"]}
{"102K":["1";"1000";"1"]}
{"103K":["0.01";"10000";"10"]}
{"104K":["0.1";"100000";"100"]}
{"105K":["1";"1000000";"1000"]}
{"109K":["0.000001";"1";"1"]}
{"120K":["0.000012";"12";"12"]}

관련 정보