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}
l
0(숫자) 또는 비어(문자열)이 아닌 경우에만 변수를 인쇄합니다. 이렇게 하면 첫 번째 줄이l
아직 설정되지 않았기 때문에 인쇄되지 않습니다.l=$0
l
변수를 전체 줄로 설정END
마지막으로 변경된 첫 번째 필드의 마지막 줄을 인쇄합니다.
산출:
0.25,20171225,20:00
3,20171226,23:59
3.5,20171231,00:01
3,20180108,05:43