입력하다:

입력하다:

이전에 실제 행 삭제에 대해 질문하고 좋은 답변을 얻었지만 이제는 하나의 특정 열에서 특정 행 번호 아래의 모든 행을 삭제하는 방법을 알고 싶습니다. 다른 모든 열과 행은 변경되지 않은 상태로 유지되어야 합니다.

보너스로 삭제된 특정 공간에 다른 열을 붙여넣거나 인쇄하는 방법도 있습니다.

예(탭으로 구분된 열) - 열 1에서만 행 2와 그 아래의 모든 행을 삭제한 다음 한 열을 왼쪽으로 이동하여 행 2와 열 3을 행 2에서 아래로 이동합니다.

입력하다:

hunkey dorey pringle  
jungley fevery jingles  
freshly cutting jackle  
Queen Kingly Squire

산출:

hunkey dorey pringle  
fevery jingles  
cutting jackle  
Kingly Squire

답변1

awk해결책.

awk '{if(NR>1){$1="";sub(" ","")}}1'

답변2

sed 'N,$s/^[^ ]\+[ ]\+//'

여기서 N은 첫 번째 열이 손실된 첫 번째 행의 행 번호입니다.

답변3

GNU sed 사용:

sed '2,$ s/[^\t]*\t//' file

가지고 다닐 수 있는:

tab=$(printf '\t')
sed '2,$ s/[^'"$tab"']*'"$tab"'//' file
  • 2. $ 두 번째 줄부터 마지막 ​​줄까지
  • s/[^\t]*\t//탭 문자를 제외한 모든 문자를 다음 탭 문자(첫 번째 탭 문자)로 바꿉니다.

관련 정보