파일의 첫 번째 행에서 처음 두 열을 제거하는 명령을 찾고 있습니다. 열 구분 기호는 파이프입니다. 열의 개수는 다양합니다.
처음 두 열만 맹목적으로 삭제하면 됩니다. 아래 예.
입력: 열 1 | 열 3 |
출력 열 3 |
답변1
아마도 가장 간단한 명령은 다음과 같습니다.
sed '1s/^[^|]*|[^|]*|//g' input > output
이 sed
명령은1호선만 해당대체하십시오.
이 입력의 경우:
foo|bar|baz|doo|bee|doo
123|456
789|101|112
다음과 같은 출력이 생성됩니다.
baz|doo|bee|doo
123|456
789|101|112
답변2
이 명령을 시도해 보세요
head -2 inputFile.txt | cut -d "|" -f 3- > outputFile.txt
답변3
당신이 말하는 것이 무엇인지 추측한다면, cut 명령이 그 일을 할 것입니다.
echo "foo|bar|baz" | cut -d"|" -f3
따라서 첫 번째 줄만 편집하려면 head 명령을 사용할 수도 있습니다.
head -n1 filename | cut -d"|" -f3
sed를 사용하여 작업을 수행할 수도 있습니다.
head -n1 filename | sed 's/^.*|.*|//g'
답변4
이렇게 하면 라인 1에서 파이프로 구분된 처음 2개의 필드가 잘리고 파일의 나머지 부분(라인 2 이후)은 변경 사항 없이 복사됩니다.
(head -n 1 input | cut -d '|' -f 3- ; tail -n +2 input) > output
약간 더 효율적이지만 구문론적으로 더 까다로운 접근 방식은 다음과 같습니다.
{ head -n 1 input | cut -d '|' -f 3- ; tail -n +2 input; } > output