2012-11-24 3 views
1

부품 :1 개 라인까지 열/(conky 명령)로 이동하는 방법 - 바람직하게는이 같은 내 파일보기의 나오지

${goto 97}${exec sed -n '1p' $HOME/.config/conky/itl/raw2}# 
${goto 194}${exec sed -n '2p' $HOME/.config/conky/itl/raw2}# 
${goto 291}${exec sed -n '3p' $HOME/.config/conky/itl/raw2}# 
${goto 388}${exec sed -n '4p' $HOME/.config/conky/itl/raw2}# 
${goto 485}${exec sed -n '5p' $HOME/.config/conky/itl/raw2}# 
${goto 582}${exec sed -n '6p' $HOME/.config/conky/itl/raw2}# 
${goto 679}${exec sed -n '7p' $HOME/.config/conky/itl/raw2}# 
${goto 776}${exec sed -n '8p' $HOME/.config/conky/itl/raw2}# 
${goto 873}${exec sed -n '9p' $HOME/.config/conky/itl/raw2}# 

나는 "$ {고토 윈}"1 개 라인까지 이동하려면, 첫 번째 파일을 버립니다 (또는 선택적으로 첫 번째 파일을 마지막 위치로 옮깁니다).

편집 :이 방법으로 파일 전체에 걸쳐 여러 번 반복하십시오. 나는 그 모든 것을 설명 된대로 바꾸고 싶다. 또한, 설정 파일은 다른 것들을 포함하고 있습니다.

내가 sed와 함께 aquainted를 얻고 있기 때문에 sed로 해결하고 싶지만 리눅스 셸 스크립트에 들어갈 수있는 한 꼭 필요한 것은 아니다.

edit2 : 설정 파일에 sed 명령이 있다는 것도 혼란스럽지 않기를 바랍니다. 내가 찾고있는 솔루션과 아무 관련이 없습니다.

답변

1

이 당신을 위해 작동 할 수 있습니다 (GNU가 나오지도) : 모든

sed '$!N;s/^\(${goto [0-9]\+}\)\(.*\n\)\(${goto [0-9]\+}\)/\3\2\1/;P;D' file 
  • $!N하지만 마지막 줄은 줄 바꿈과 시작하는 두 개의 연속 라인 패턴 영역
  • s/^\(${goto [0-9]\+}\)\(.*\n\)\(${goto [0-9]\+}\)/\3\2\1/에 다음 줄을 추가 문자가 ${goto [0-9]\+} 인 경우 [0-9]\+은 하나 이상의 자릿수를 의미하며,이 문자열과 중간 문자열을 기록한 다음 스왑합니다.
  • P;D 첫 번째 개행 \n 개까지 인쇄 한 다음 개까지 삭제하고 개행 문자를 포함하십시오. 패턴 공간이 비어 있지 않으면 다음 행을 자동으로 읽지 않고 첫 번째 명령 (새 행을 추가 ...)으로 시작하는 새주기를 시작하십시오.
+0

감사합니다! 그 작품! 누군가가 정교하게 신경 쓰겠습니까? 떨어져서 $ {goto [0-9] 나는별로 이해하지 못합니다. 도 왜 대괄호()를 사용합니까? – ohnonot

+0

@ohnonot 편집보기 – potong