열의 모든 요소에 0x 및 쉼표 값을 추가합니다.

열의 모든 요소에 0x 및 쉼표 값을 추가합니다.

2개의 열이 있는 파일이 있는데 각 열에는 거의 100개의 요소가 있습니다.

00000 4f000
00001 3df56
00002 4fdea
..... .....

파일 내용을 다음과 같이 변경하고 싶습니다.

0x00000, 0x4f000;
0x00001, 0x3df56;
........ ........

위의 형식으로 변경하기 위해 실행할 수 있는 unix 명령이 있습니까?

답변1

한 줄을 사용할 수 있습니다awk

awk '$1="0x"$1",",$2="0x"$2";"' file

답변2

이것 좀 보세요 :)

$ cat file.txt
00000 4f000
00001 3df56
00002 4fdea

암호:

$ sed -r 's/^([0-9]+)\s+([[:alnum:]]+)/0x\1, 0x\2;/' file.txt

또는:

$ perl -pe 's/^(\d+)\s+([[:alnum:]]+)/0x$1, 0x$2;/' file.txt

산출:

0x00000, 0x4f000;
0x00001, 0x3df56;
0x00002, 0x4fdea;

답변3

표시된 것 외에는 입력이 필요하지 않은 가장 간단한 Sed 솔루션입니다.

sed -En 's/^(.....) (.....)$/0x\1, 0x\2;/p'

정확히 11개의 문자(중간 문자는 공백)를 포함하지 않는 줄은 출력에서 ​​생략됩니다.

관련 정보