파일의 첫 번째 행에서 처음 2개 열을 제거합니다.

파일의 첫 번째 행에서 처음 2개 열을 제거합니다.

파일의 첫 번째 행에서 처음 두 열을 제거하는 명령을 찾고 있습니다. 열 구분 기호는 파이프입니다. 열의 개수는 다양합니다.

처음 두 열만 맹목적으로 삭제하면 됩니다. 아래 예.

입력: 열 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

관련 정보