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