텍스트 파일의 한 줄을 텍스트 파일의 다른 줄 앞으로 이동하는 가장 빠른 방법은 무엇입니까?

텍스트 파일의 한 줄을 텍스트 파일의 다른 줄 앞으로 이동하는 가장 빠른 방법은 무엇입니까?

텍스트 파일에 55번 줄이 있는데 같은 텍스트 파일에서 23번 줄 앞으로 옮기고 싶습니다. 행을 특정 행 위로 이동할 수 있다는 것을 알고 있습니다.1,2그러나 텍스트 파일에서 줄을 위아래로 이동하는 장황한 방법 대신 한 줄을 다른 줄에 추가하거나 추가하는 것이 가능합니까?

vim, sed 또는 기타 명령줄 도구를 사용하여 답변을 수락할 의향이 있지만 간결할수록 좋습니다.

고쳐 쓰다:

sed명령은 i줄 앞에 텍스트를 삽입합니다. 이는 줄 앞에 줄을 삽입하려는 점을 제외하면 제가 찾고 있는 것과 유사합니다.

답변1

스크립트 가능한 편집기를 사용하면 이 작업이 매우 쉬워집니다!

printf '%s\n' '55m22' 'wq' | ed -s input

그러면 두 개의 명령이 다음으로 전송됩니다 ed( 이름이 지정된 파일 편집 input).

  1. 55m22--라인 22 뒤로 라인 55를 이동합니다.
  2. wq-- 파일을 다시 디스크에 저장하고 종료합니다.

답변2

더 짧음:

ex input <<<"55m22|wq"

답변3

vi다음보다 약간 더 깁니다 ed.

vi input
55Gdd23GPZZ

55G...55행으로 이동
dd...행 삭제
23G...23행으로 이동
P...삭제된 행을 23행 앞에 붙여넣기
ZZ...파일에 쓰고 종료

관련 정보