다음과 같이 탭으로 구분 된 파일이 있습니다.
name1 verb1 name2 verb2 etc...
두 번째 열을 삭제하고 싶습니다. 나는 중 하나 편집 시도 이러한 대답을 하지만, 익숙하지 않은 것 sed
그리고 awk
내가 할 수 없었다.
누구든지 나를 도울 수 있습니까?
x
삭제할 열을 선택하십시오 )?
다음과 같이 탭으로 구분 된 파일이 있습니다.
name1 verb1 name2 verb2 etc...
두 번째 열을 삭제하고 싶습니다. 나는 중 하나 편집 시도 이러한 대답을 하지만, 익숙하지 않은 것 sed
그리고 awk
내가 할 수 없었다.
누구든지 나를 도울 수 있습니까?
x
삭제할 열을 선택하십시오 )?
답변:
허용 된 답변은 이것보다 훨씬 우아합니다 (공개했습니다!). 기억하지 못하는 경우 vim
시각적 블록 모드를 직접 사용할 수 있습니다. vim을 열고 다음과 같이 열의 첫 번째 모서리로 이동하십시오 (일반 모드).
입력 CTRL-V
하고 커서를 움직여 열을 선택할 수 있습니다.
끝으로 가려면 G
:
우리가 비어있는 마지막 줄에 있기 때문에 블록이 깨진 것처럼 보입니다. 간단히 한 줄 위로 (위 화살표 또는 k
) 사용하여 다시 볼 수 있습니다.
이제 단순히 x
블록을 삭제하려면을 누르십시오 .
나는 cut
이것을 위해 사용할 것이다
cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt
이것을 vim 내에서 필터로 사용할 수도 있습니다 (이것은 파일의 모든 줄을 대체합니다; 예를 들어 2-9 줄을 처리하거나 2,9
대신 %
원하는 줄을 선택할 수 있습니다 V
).
:%!cut -f1,3-
-f1,3-
'필드 1을 인쇄 한 다음 행 끝까지 필드 3 및 모든 필드를 인쇄합니다'를 의미합니다. 기본적 cut
으로 탭을 구분 기호로 사용합니다. 다른 것이 필요한 경우 -d
옵션을 사용하십시오 (참조 man cut
).
다음 중 하나를 시도 할 수 있습니다.
:%norm WdW
또는 시각적 모드를 사용하여 수동으로 :
명령 행에서 대신 수행하려면 다음을 시도하십시오.
$ ex +':exe ":%norm f\<Tab>dE"' -scx file
관련 : 모션에 사용할 탭 키의 리터럴을 작성하는 방법은 무엇입니까?
또한보십시오: