PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/03/22 11:46:38
Name 드림
Subject [질문] [프로그레밍] 리눅스 명령어/사이트 질문
저번에 PDF에 관련해서 질문 드렸었는데요. (https://pgr21.com/?b=26&n=79662)

결국 LaTeX를 사용하여 PDF를 만들기로 결정이 났습니다.

교수님께서 도와주셔서 라텍스 부분은 쉽게(?) 끝이 났는데요. 라텍스를 사용하여 PDF를 만드는 부분까진 완성 됐습니다.

다만 여기서부터 문제인데요. 라텍스를 실행시키고 PDF를 만드는것이 모두 라즈베리파이에서 이뤄져야 합니다.
그래서 리눅스 명령어를 사용할 수 밖에 없는 상황까지 와버렸습니다...

리눅스 명령어가 뭔지도 모르고 시작했다가.. 지금 아주 조금 감은 잡았는데 아직도 잘 모르겠습니다.

혹시 리눅스 명령어에 대해서 질문할 수 있는 사이트가 있을지 궁금해서 이렇게 질문 드려봅니다.
여기에 질문하고 짧은 질문을 도배식으로 올리는게 실례가 될것 같아서 다른 프로그레밍 전문 사이트를 찾고 있습니다..


+++ 이 밑은 리눅스 명령어에 대한 질문입니다.

해야하는 프로젝트를 대충 설명드리면..
1. 라즈베리파이를 이용하여 모터를 컨트롤 한 뒤에 모터의 위치를 .txt 파일로 생성합니다.
2. .txt파일에 있는 10개정도의 번호를 읽어서 미리 만들어둔 .tex파일에 번호들을 바꿔야 합니다.
3. 끝으로는 pdflatext 를 이용하여 pdf를 만들면 됩니다.

제가 지금 까지 생각해둔 방법은..
1. 기존에 만들어둔 .tex 파일을 하나 복사합니다. (복사하는 이유는 sed를 이용하여 텍스트를 바꾸게 되면 다시 실행하였을때 오류가 날것 같아서 입니다.)
cp default.tex for_pdf.tex

2. grep 을 이용하여 motor.txt 파일에 있는 모터 위치를 읽습니다. 그리고 sed를 사용하여 for_pdf.tex 파일에 붙여 넣습니다. (aaaa는 모터1의 포지션 이라고 하겠습니다)
grep -i 'aaaa' motor.txt | sed sed -i 's/aaaa/??????????/g' for_pdf.tex
저 물음표 부분에 grep에서 읽은 숫자가 들어야하 하는데 어떻게 해야할지 모르겠네요..

3. 이 뒤에는 바로 PDF를 만들면 될것 같습니다.
pdflatext for_pdf.tex

4. 그리고 다음에 다시 실행할때 오류가 날지도 모르니 전에 만들어 뒀던 파일은 지울 생각입니다.
rm for_pdf.tex

----------------------


여기까지가 계획인데 2번에서 막혀버렸습니다. 쉬워보이기도 하는데.. 리눅스 명령어는 태어나서 처음 만져봐서 많은 문제가 있네요..

피지알에 프로그레머분들 도움 부탁드립니다! 혹시 직접적 도움 주시기 어렵다면 도움이 될만한 사이트나 명령어 부탁드립니다.

짧지 않은 글 읽어주셔서 감사드립니다.




+++추가질문+++
이 명령어를 모두 완성 한 뒤에 라즈베리파이에서 작동할 수 있는 파일을 만들어야 하는데 (exe파일 같은...), 어떻게 검색을 해야하는지도 모르겠네요..

어떻게 해야할지 팁이나 참고할만한 사이트라도 부탁드립니다..

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Andromath
16/03/22 12:05
수정 아이콘
2.

set motor_loc = `grep -i 'aaaa' motor.txt`
/*
-i를 쓰신것은 case-insensitive하게 하시려고 그러신 것 같고, 그럼 'aaaa'가 포함된 전체 라인을 받아와서 그 중 일부만 쓰시려는 것인가요?
만약에 단어간에 스페이스가 있다면 awk을 쓰시면 편해요, 예를 들어 파일 안에

aaaa 1000

이런 식의 라인이 있고 1000을 받아가고 싶으신 것이라면
set motor_loc = `grep -i 'aaaa' motor.txt | awk '{print $2}'`
이런 식으로 하시면 됩니다.
라인 전체가 필요하신 것이라면 이 부분은 필요 없고요...
*/

그 다음에
sed -i 's/aaaa/${motor_loc}/' for_pdf.tex> for_pdf.tex.tmp
rm for_pdf.tex
mv for_pdf.tex.tmp for_pdf.tex

쉘 타입을 몰라서 최대한 통할 수 있는 명령어들로만 해봤어요.
16/03/22 12:59
수정 아이콘
오.. 답변 감사합니다.
먼저.. -i는 사실 샘플 라인 받아 쓴거라 뜻도 모르고 가져가다 썻습니다..
그리고 파일안에
aaaa = 1000
이런식으로 숫자를 지정하려고 했는데, 써주신 방법으로 하면 될것 같네요.

지금 일단 할 수 없는 상황이라.. 시도 해보고 다시 댓글 달도록 하겠습니다.
자세한 답변 감사합니다!
16/03/22 13:58
수정 아이콘
써주신대로 작성하여서 돌려보니 PDF를 만들때 문제가 생겼습니다..ㅜㅜ

제가 쓴 명령어들 인데요.

cd c:/latex
cp default.tex for_pdf.tex
set motor_loc = `grep -i 'aaaa' motor.txt | awk '{print $2}'`
sed -i 's/aaaa/${motor_loc}/' for_pdf.tex> for_pdf.tex.tmp
pdflatex for_pdf.tex

이렇게 하니 pdf가 만들어지지 않습니다. 그래서 tex파일을 보니
${motor_loc}
을 인식을 못하는것 같습니다..
명령어를 좀 써봤어야 디버깅도 할텐데 어떻게 고쳐야 하는지도 잘 모르겠네요..

혹시 시간나시면 봐주시면 감사하겠습니다...
Andromath
16/03/22 14:48
수정 아이콘
쉘 문제일 수도 있겠다 싶습니다.

이 셋 중 하나를 써보시고 안 되시면 sed에서 $motor_loc 부분을 아무 다른 string으로 바꾸시고 해보세요. 그래도 안 되면 잘 모르겠습니다.

sed -i "s/aaaa/$motor_loc/" for_pdf.tex> for_pdf.tex.tmp
pdflatex for_pdf.tex
sed -i 's/aaaa/$motor_loc/' for_pdf.tex> for_pdf.tex.tmp
pdflatex for_pdf.tex
eval "sed -i s/aaaa/$motor_loc/ for_pdf.tex> for_pdf.tex.tmp
pdflatex for_pdf.tex"
16/03/22 14:50
수정 아이콘
아이고.. 이렇게까지 신경 써주시니 정말 감사합니다!
복 받으실 꺼에요!
Andromath
16/03/22 15:03
수정 아이콘
사실 리눅스나 유닉스에서는 쉘 마다 명령어랑 문법이 약간씩 달라서... 저는 내공이 부족해서 한두가지 쉘밖에 잘 모릅니다. 시간이 넉넉하시면 stackoverflow같은 사이트에도 검색해보시거나 아님 질문 올리시면 사람들이 까칠해도 답변 잘 해줄거에요..
16/03/22 15:03
수정 아이콘
추천해주신 사이트 참고하겠습니다.
여러모로 다시 감사드리고 행복한 하루 되세요~
자바초코칩
16/03/22 13:26
수정 아이콘
흠흠. 라텍스라고는 잘 안하고.. 보통 레이텍이라고 읽습니다.
추가질문에 대한 답을 하자면, 리눅스에서는 실행권한이 있으면 다 실행시킬 수 있습니다.
아마 쉘 명령어로 프로그래밍을 하실 것 같은데, 이 경우 쉘 스크립트로 검색해보시면 될 것 같네요.
16/03/22 13:55
수정 아이콘
사실 지금 윈도우에서 cygwin을 이용하여 명령어를 입력하고 있습니다. 나중에 라즈베리파이 Linux에서 돌아가길 바라면서요..
쉘 스크립트를 찾아서 보니 배울것이 하나 더 생겼네요..
답변 감사합니다!
프로듀사
16/03/23 01:25
수정 아이콘
grep -i 'aaaa' motor.txt
결과랑 tex 파일에 aaaa 있는 줄을 보여주시면 더 좋은 답변이 달릴 것 같아요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
80181 [질문] 레일 책장 설치 문의 드립니다. 네오바람1540 16/03/23 1540
80180 [질문] 라이엇 게임즈에서 설문조사 메일로 오신 분들 제10번교향곡1823 16/03/23 1823
80179 [질문] 액티브x가 나쁜 건가요? [22] msu3002 16/03/23 3002
80178 [질문] 차량 버그가드 효과가 있을까요? [4] Red Key4496 16/03/23 4496
80177 [질문] 제주 여행 렌터카 질문입니다. [22] 선배2365 16/03/23 2365
80176 [질문] 나이를 먹으면서 더 쪼잔해 지는거 같아요 [23] 스웨트3753 16/03/23 3753
80175 [질문] 스마트폰 구입 시 할부원급 완납폰은 추가 비용이 없는 건가요? [2] 삭제됨1536 16/03/23 1536
80174 [질문] 회사를 그만두어야 할 때가 온 것일까요? [10] 톨기스4222 16/03/23 4222
80173 [질문] 육룡이 나르샤 같은 허구가 가미된 역사 소설 괸련 [2] 리오1366 16/03/23 1366
80172 [질문] 애플워치 랑 기어s2 둘중에 하나를 못고르고 있습니다. [10] Fly:D2087 16/03/22 2087
80171 [질문] 일본쪽으로 취업하기 좋은 전공 뭐가 있을까요 [5] 리나시타2088 16/03/22 2088
80170 [질문] 가슴근육 불균형 해결법부탁드립니다 ㅠㅠ [10] 쏭쏭7733 16/03/22 7733
80169 [질문] 동성애자 논박 질문 [24] 모루3276 16/03/22 3276
80168 [질문] ps4 리틀빅히어로 2인용 오류.. [2] Blazing Souls2446 16/03/22 2446
80167 [질문] 구글 캘린더를 pc 바탕화면으로 설정하기 질문합니다. [2] 무당벌레5202 16/03/22 5202
80166 [질문] 이 경우에는 어떤 우승을 한 팀을 보통 더 고평가하나요?? [14] 잘가라장동건1991 16/03/22 1991
80165 [질문] 기계식키보드 사용 후 기본적인 기능키가 동작하지않아요 해피바스1400 16/03/22 1400
80164 [질문] 컴퓨터 견적 괜찮은지 좀 봐주세요., [2] 유지태.1874 16/03/22 1874
80163 [질문] 진상 우리나라만 그런가요? [30] 레인이3894 16/03/22 3894
80162 [질문] ssd에 윈7설치가 안되는데 강제포맷 방법이 있을까요? [6] plane3586 16/03/22 3586
80161 [질문] [직장생활] 부당 퇴사 압박에 관한 질문입니다. [20] 남자의일격4450 16/03/22 4450
80160 [질문] 첫 침대를 사보려고 합니다. [7] 삭제됨1995 16/03/22 1995
80159 [질문] 강아지 버릇 질문인데요 [3] 소다수1759 16/03/22 1759
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로