csv 파일이 있고 ";" 뒤의 모든 내용을 제거하여 과학 논문 제목이 포함된 첫 번째 열을 편집하고 싶습니다. 상징.
따라서 일반적인 헤더의 형식은 다음과 같습니다.
long scientific title here;other stuff I want to delete including the semicolon (no space between ; and the text)
제목을 다음과 같이 만들고 싶습니다.
long scientific title here
sed
또는 awk
(이것이 중요한 경우 macOS에서)를 사용하여 이를 어떻게 달성합니까 ?
답변1
각 줄의 첫 번째 세미콜론 뒤의 모든 항목을 제거하려면 다음을 수행하세요.
그리고 cut
:
cut -d';' -f1 file
-d';'
세미콜론을 구분 기호로 사용-f1
첫 번째 필드 인쇄
그리고 awk
:
awk -F';' '{ print $1 }' file
다음과 같습니다 cut
. 입력 필드 구분 기호로 세미콜론을 사용하고 첫 번째 필드를 인쇄합니다.
그리고 sed
:
sed 's/;.*//' file
세미콜론과 다음 문자를 빈 문자열로 바꿉니다.
답변2
첫 번째 칼럼이므로 (GNU) sed면 충분하다고 생각했습니다. 열 구분 기호가 탭이라고 가정하면 다음과 같습니다.
sed -E 's/^(.*);.*\t/\1\t/' file
답변3
운영 체제에는 텍스트 처리를 위한 작고 간단한 도구가 많이 포함되어 있습니다. 이 경우 다음을 사용합니다 cut
.
cut -d; -f1 <FILE >tmpfile && mv tmpfile FILE