csv 파일의 마지막 행에 있는 숫자에 값 추가

csv 파일의 마지막 행에 있는 숫자에 값 추가

csv다음 형식의 파일이 있습니다 .

0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
1.75,20180108,05:43

명령줄에서 마지막 줄의 첫 번째 필드에 값을 추가하려면 어떻게 해야 합니까?

따라서 파일을 추가하려면 1.25다음과 같이 표시됩니다.

0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
3,20180108,05:43

파일이 계속 늘어나기 때문에 마지막 줄에는 고정된 줄 번호가 없습니다.

답변1

awk의 솔루션은 다음과 같습니다.

awk -F, -v OFS=, 'l{print l}{l=$0}END{$1+=1.25;print}' file

아이디어는 현재 줄 대신 이전 줄을 인쇄하는 것입니다.

  • -F,-v OFS=,입력 및 출력 필드 구분 기호를 설정합니다 .
  • l{print l}l0(숫자) 또는 비어(문자열)이 아닌 경우에만 변수를 인쇄합니다. 이렇게 하면 첫 번째 줄이 l아직 설정되지 않았기 때문에 인쇄되지 않습니다.
  • l=$0l변수를 전체 줄로 설정
  • END마지막으로 변경된 첫 번째 필드의 마지막 줄을 인쇄합니다.

산출:

0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
3,20180108,05:43

관련 정보