이전에 실제 행 삭제에 대해 질문하고 좋은 답변을 얻었지만 이제는 하나의 특정 열에서 특정 행 번호 아래의 모든 행을 삭제하는 방법을 알고 싶습니다. 다른 모든 열과 행은 변경되지 않은 상태로 유지되어야 합니다.
보너스로 삭제된 특정 공간에 다른 열을 붙여넣거나 인쇄하는 방법도 있습니다.
예(탭으로 구분된 열) - 열 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//탭 문자를 제외한 모든 문자를 다음 탭 문자(첫 번째 탭 문자)로 바꿉니다.