이 CSV 파일이 있습니다
ID,col1,col2,col3
1,,,FALSE
2,,,FALSE
3,,,FALSE
4,,,FALSE
ID 열을 사용하여 다른 CSV 파일과 결합하고 싶습니다.
ID,col1
2,AA
3,BB
가져오기(실제 출력은 또 다른 CSV여야 합니다. 여기에 더 읽기 쉽게 하기 위한 예쁜 인쇄물이 있습니다)
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | FALSE |
| 3 | BB | - | FALSE |
| 4 | - | - | FALSE |
+----+------+------+-------+
마지막 col1
으로 비어 있지 않으면 col3
비어 있어야 합니다.TRUE
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | TRUE |
| 3 | BB | - | TRUE |
| 4 | - | - | FALSE |
+----+------+------+-------+
일부 Linux 명령줄 유틸리티나 bash 스크립트를 사용하여 이 작업을 수행하려면 어떻게 해야 합니까?
답변1
밀러를 사용할 수 있습니다(https://github.com/johnkerl/miller). 달리기
mlr --csv join --ul -j ID -f input01.csv then put -S '!is_empty($col1) { $col3 = "TRUE" }' then sort -n ID input02.csv >output.csv
당신은 할 것
+----+------+------+-------+
| ID | col1 | col2 | col3 |
+----+------+------+-------+
| 1 | - | - | FALSE |
| 2 | AA | - | TRUE |
| 3 | BB | - | TRUE |
| 4 | - | - | FALSE |
+----+------+------+-------+
몇 가지 참고사항:
join
필드를 사용ID
하여 연결을 실행합니다.put
col1이 비어 있지 않은지 확인하십시오.sort
ID별로 레코드 정렬