bash 스크립트 작성 중 질문
계산화학을 하고 있는 학생입니다. 계산 결과값을 손으로 직접 정리하기엔 단순 작업량이 굉장히 많아 코딩을 이용해 간단하게 해결하고자 했습니다.
아래 파일을 첨부하였습니다.
제가 하고 싶은 것은 아래 파일에서 'Optimization completed' 라는 문구가 나오고, 그 위에 있는 standard orientation 을 복사하여 새로운 텍스트 파일에 붙이는 것 입니다. 또한 Atomic number 라는 열에서는 7은 N, 1은 H, 14는 Si로 치환하여 나타내고 싶습니다.
좀더 설명하고자 파일의 일부분을 가져오면,
Standard orientation:
---------------------------------------------------------------------
Center Atomic Atomic Coordinates (Angstroms)
Number Number Type X Y Z
---------------------------------------------------------------------
1 7 0 -0.052963 1.214246 -0.000000
2 1 0 0.484249 1.521097 0.814525
3 1 0 0.484249 1.521097 -0.814525
4 14 0 -0.052963 -0.631573 0.000000
5 1 0 -0.634200 -1.219249 1.239574
6 1 0 -0.634200 -1.219249 -1.239574
7 1 0 1.412117 -0.261395 0.000000
---------------------------------------------------------------------
Rotational constants (GHZ): 66.3317637 11.7756446 11.4424088
Standard basis: def2SVP (5D, 7F)
.
. (중략)
.
Optimization completed.
.
. (생략)
.
이런 식의 구조로 되어있습니다. 제가 원하는 건 아무 Standard orientation 이 아닌, optimization completed. 라는 문구가 뜬 곳마다 위에 있는 standard orientation의 바로 아래 표만 복사하여 새로운 텍스트 파일에 복사하여 넣고 싶습니다. 또한 optimization completed는 여러 개가 있어서 표도 그만큼 복사해야 합니다.
감사합니다.
첨부 | 파일 크기 |
---|---|
Si1N.txt | 902.98 KB |
코드가 쌈빡하지 못한점 죄송합니다.
코드가 쌈빡하지 못한점 죄송합니다.
그리고 3개의 문자열 치환은 구현 못했네요.
파이썬3 입니다.
[우분투 18.04 파여폭스 나비에서 적었어요~]
--
^고맙습니다 감사합니다_^))//
출력물을 좀 더 간소화 시켜봤습니다...
[우분투 18.04 파여폭스 나비에서 적었어유~~~]
--
^고맙습니다 감사합니다_^))//
치환 구현했어요~
164504-replace.py
[우분투 18.04 파여폭스 나비에서 적었어유~~~]
--
^고맙습니다 감사합니다_^))//
그냥 간단하게.
그냥 간단하게.
복잡하게 짤 필요 있나요 ~_~
yield 로 기술을 거는 고차원의 코드!
yield 로 기술을 거는 고차원의 코드!
훌륭한 코드 감사합니다^^^
[우분투 18.04 파여폭스 나비에서 적었어요~]
답변 진심으로 감사드립니다.
답변 진심으로 감사드립니다.
저는 지금까지 bash 쉘 스크립트로 간단한 코딩을 해왔는데 bash 환경에서 python 실행파일을 실행시켜본 적이 없어서 어떻게 해야할지 잘 모르겠네요.
bash 쉘 스크립트로 예상했으나 파이썬으로 주실 줄 몰랐습니다 ㅠㅠ
랩실 HPC에는 보니깐 python 2.7.15, 3.6.6 이렇게 두 개가 깔려있는 것으로 보입니다.
또한 주신 파일을 저장하고 ./dfdf 해서 실행시켜봤더니
라고 나옵니다.
음... 어떻게 해야할까요?
dma...
노서치파일오어디렉토리 임시해결책 파일로 첨부했씁니다.
[우분투 18.04 파여폭스 나비에서 적었어유~]
--
^고맙습니다 감사합니다_^))//
아 그리고,,,
아 그리고,,,
bash 훌륭한 도구입니다. 그리고 파이썬은 더 훌륭한 도구 입니다 ^^^
요건 개인적 생각이니 너무 맘에 두지는 마시어용~~~
[우분투 18.04 파여폭스 나비에서 적었어유~~~]
--
^고맙습니다 감사합니다_^))//
아 제가 컴퓨터 공학과가 아니라 코딩이나 다른 것들에
아 제가 컴퓨터 공학과가 아니라 코딩이나 다른 것들에 대해서 접해볼 기회가 없었습니다.
Bash 쉘 스크립트를 그동안 했던 이유는 단순하게 실험실에서 리눅스 환경에서 모든걸 진행해야 하다보니 bash 쉘 스크립트만 해봤습니다.
만약 코딩에 대해서 배울 기회가 생긴다면 당연히 파이썬을 배울 생각입니다!
윈도우에서 파이썬을 사용해본 적은 있지만 리눅스 환경에서 해본 적이 없습니다. 파이썬을 리눅스 환경에서 할 수 있는 방법만 안다면 파이썬으로 차근차근 해보려고 합니다!
선생께서 리눅스 환경에만 익숙해지시면 파이썬으로도
선생께서 리눅스 환경에만 익숙해지시면 파이썬으로도 충분히 기술을 걸 수 있습니다.
리눅스 환경에 익숙해지기위한 가장 적합한 배포판으로 우분투 추천합니다
그중에서도 2년마다 출시되는 LTS 를 정말 강력 추천합니다^^^
우분투는 과학계 연구원/교수분들도 많이 씁니다.
qmail 저자 번스타인교수(djb@cr.yp.to)께서도
대략 2년전 우분투 18.04 LTS 에서 뭔가를 작업하는걸 봤었어요.
===> (출처: pqc메일링)
구체적으로 양자 콤푸타 보안 산법 연구에서 우분투 18.04 LTS 를 쓰시는거 같았어요~
그리고 GNU Emacs 개발 메일링에서 주로 C언어와 관련된 패치에서 갱장히 열심히 일하시는 UCLA 콤푸타학과 교수 폴에거트(eggert@cs.ucla.edu) 이 분도 대략 1~2년 전쯤 우분투 18.04 LTS 를 쓰는걸 확인했네요...
===> (출처: GNU Emacs 개발 뉴스그룹에서)
화이팅입니다^^^
[우분투 18.04 파여폭스 나비에서 적었어요~~~]
--
^고맙습니다 감사합니다_^))//
지금 보내주신 스크립트로 해본 결과 결과는 성공적으로
지금 보내주신 스크립트로 해본 결과 결과는 성공적으로 나온 것 같습니다.
코딩을 잠시 봤는데 이것은 제가 이 사이트에 올린 Si1N.txt.라는 파일을 가져와서 하는 것으로 생각됩니다.
이것을 /home/gksrb500/Bond/Si1N/SCAN 경로에 있는 Si1N.log라는 파일을 가져와야 합니다. (SCAN까지가 폴더 이름입니다.)
또한 이것을 출력하는 것이 아닌 메모장이나 어떤 파일 형태로 저장하고 싶은데 어떻게 해야는지 궁금합니다.
답변 정말 진심으로 감사드립니다.
164504-3.py
[우분투 18.04 파여폭스 나비에서 적었어욧~~~]
--
^고맙습니다 감사합니다_^))//
음 ...
그냥 아이디어만 보세요.
csplit 을 써서 Input orientation: 을 기준으로 개별 파일로 나눈 후에..
Optimiation completed 가 들어 있는 파일만 처리한 겁니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
completed_xx?? 헝태로 나온 것들을 H
completed_xx?? 헝태로 나온 것들을 H_Si_N_1 H_Si_N_2 처럼 오름차순으로 재정리하고 싶습니다.
주신 코드로 해본결과 completed_xx10, completed_xx18 이렇게 뜨문뜨문 생겼습니다.
H_Si_N 은 ${FOLDER_NAME}으로 이미 정의가 되어있습니다. 따라서 뒤에 있는 숫자만 변수화하여 뒤에 붙이고 싶습니다.
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
정말 감사드립니다.
정말 감사드립니다.
csplit으로 생긴 xx파일들이 xx195같이 3자리수가 넘어가는 경우도 있습니다. 그래서 물음표가 두 개 있는 부분을 ???를 해줬더니 이번엔 기존에 잘 되던 xx뒤에 두자리수가 있는 경우는 인식을 못하는 것 같습니다. 어떻게 해야할까요... 제가 스크립트와 폴더들을 첨부하겠습니다. xyz_search가 스크립트입니다.
음 ..
https://tldp.org/LDP/abs/html/globbingref.html
https://www.shell-tips.com/bash/wildcards-globbing/
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
항상 느끼지만 ymir 님이 쉘 도구로 기술을
항상 느끼지만 ymir 님이 쉘 도구로 기술을 걸때마다 카타르시스가 느껴집니다.
늘 훌륭하며 소중한 코드에 감사드립니다!!!
[우분투 18.04 파여폭스 나비에서 적었어요~]
선배님들께서 주신 관심 덕분에 성공적으로 코딩을
선배님들께서 주신 관심 덕분에 성공적으로 코딩을 완료할 수 있었습니다.
진심으로 다시 한번 감사드립니다.
bash$ sed -En '
댓글 달기