특정 열 값의 쉼표 바꾸기

특정 열 값의 쉼표 바꾸기

6개의 열이 있는 파일이 있는데, 각 필드는 "I"로 구분되어 있고, 마지막 열에서 두 번째 열에는 금액 필드가 포함되어 있습니다.

140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4,117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1,147.04|10

이 열에 대해 일부 작업을 수행할 수 없기 때문에 금액 열에서 ","를 제거하고 싶습니다. ","는 모든 열에 표시되지 않습니다. 나는 배쉬를 사용하고 있습니다.

답변1

당신은 그것을 사용할 수 있습니다 awk:

$ awk -F'|' '{sub(",","",$(NF-1))}1' OFS='|' file
140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1147.04|10

$(NF-1)두 번째 필드를 참조하며 해당 필드의 쉼표만 바꿉니다.

모든 필드에서 쉼표를 제거하려면 다음을 사용할 수 있습니다 tr.

$ <file tr -d ',' > out_file 

답변2

파일의 fields 에 쉼표만 포함되어 있다고 가정하면 amount다음과 같은 명령을 사용할 수 있습니다.

 sed 's/,//g' filename

답변3

나는 단지 sed를 사용하고 싶습니다 :

sed 's/,//g' filename

관련 정보