[완료]centos 배치 작업에 대해서 질문드립니다.

khjcyber21c의 이미지

안녕하세요 centos에서 배치 작업을 하려고 합니다. 현재 gcf형식의 파일을 sac 이라는 형식의 파일로 변환하는 작업을 배치파일을 만들어서 하고 싶습니다.

chmod +x gcf2sac

./gcf2sac file.gcf 이렇게 실행하면 sac 이라는 파일 형식으로 변환이 되는데

일일이 하기에는 파일이 너무 많습니다.

배치파일 좀 만들어 주실 수 있나요??

centos 5.7을 사용하고 있습니다.

부탁드려요

익명 사용자의 이미지

예제들을 많이 보게 될 겁니다만, 아직 익숙하질 않으신가 봅니다.

한 디렉토리에 gcf2sac 파일과 gcf 파일들이 있고, sac 파일은 없는 경우라면,

#!/bin/sh
chmod +x gcf2sac
for file in *.gcf
do
./gcf2sac $file.gcf
done

만으로 해결이 되겠지요.

혹시 질문을 올린 다른 이유가 있는 것인지요.

khjcyber21c의 이미지

리눅스 프로그램을 이번에 자료처리 떄문에 처음으로 사용하게 되어서 아직 많이 부족하고

어색합니다. 터미널에서 명령어 몇 개 이용해서 자료처리 방법만을 익히고 있는 정도고요

리눅스에 대해서 먼저 알고 자료처리를 해야하는데 지금 상황이 그렇지 못해서

도움을 얻고자 글쓴거고요

현재 sac형식의 파일을 자료처리해야하는데 지금 gcf라는 형식이라서 변환을 해야하는데

자료가 1000개 이상입니다. 따라서 하나씩 전부 변환하는 것은 시간이 오래걸릴거 같아서

bash라는 것을 이용하면 알아서 변환이 가능하다고 해서 글남긴 것이고요

답글 주신 내용을 터미널에서 실행을 해야하는 것인가요?? 어떻게 해야하는 건지 잘 모르겠네요ㅠ

khjcyber21c의 이미지

#!/bin/sh을 터미널에 치니까
bash: !bin/sh: event not found
이렇게 오류가 생깁니다.

newyorker의 이미지

위의 익명 사용자분이 써주신 것을 텍스트 파일로 만든 후에 chmod +x [filename]을 실행하고 파일을 실행하면 됩니다.

khjcyber21c의 이미지

근데 텍스트 파일을 만들고 chmod +x 파일이름을 하고

터미널에서 ./파일이름을 했는데 실행이 안되네요

익명 사용자의 이미지

어떤 메세지가 나오나요?

텍스트 파일에 문제가 있거나, 실행파일이 없거나, 파일에 문제가 있거나 하는 경우에 화면에 에러 메세지가 표시될 텐데요. 그에 따라 해결책을 찾아야 하니 여기에 한번 올려 보시지요.

khjcyber21c의 이미지

현재 root로 로그인해서 data라는 폴더에 2011168T073Z41.gcf와 2011168T073Z42.gcf 파일

그리고 gcf2sac 그리고 위에서 만들어주신 배치파일인 inc파일이 있습니다.

[root@localhost data]# ls

2011168T0730Z41.gcf 2011168T0730Z42.gcf gcf2sac inc

이렇게 있는상태입니다.

여기서 inc을 사용하여 gcf들을 sac이라는 파일로 변환하고 싶어서 chmod +x inc 후에

./inc이라고 터미널에 입력했는데 아무런 오류도 뜨지 않고

[root@localhost data]# 이렇게만 나옵니다.

inc파일의 내용은 다음과 같습니다.

#!/bin/sh
chmod +x gcf2sac
for file in *.gcf
do
./gcf2sac $file.gcf
done

혹시 경로를 설정해주어야 하나요??

만약에 경로를 설정해주어야 하면 어떻게 해야하는지 궁금합니다.

리눅스에 대한 아무런 지식이 없어 이렇게 글로 물어봐서 죄송합니다.

choijs007의 이미지

[root@localhost data]# chmod +x gcf2sac
-> 이건 gcf2sac 라는 파일에 실행권한을 주는거고

[root@localhost data]# ./gcf2sac file.gcf
-> 라고 명령을 해서 파일변경이 된다면 gcf2sac 이라는 바이너리파일이 파일변환해주는 명령어라 짐작되는데여

[root@localhost data]# ./gcf2sac *.gcf
-> 이렇게 하시면 그 디렉토리 내에 모든 gcf 파일이 변경될거 같네요.

같은 디렉토리 안에 모든 파일이 있으면 경로설정 따로 해주실 필요 없습니다.

배치 파일을 만들어서 계속 쓰신다고 하시면

inc 파일에다가는 chmod +x gcf2sac 이부부은 실행권한을 한번만 해주면 되기때문에 필요없구요

경로를 주고 싶으시면 해당 파일이 있는 곳에 pwd 명령어를 치시면 이런식으로 /root/home/data 경로가 나올겁니다.

그 경로를 긁어다가 앞에다가 붙여 넣어주시면 됩니다.

#!/bin/sh

for file in /root/home/data/*.gcf
do
./gcf2sac $file.gcf -> gcf2sac 명령어가 있는 경로도 다르다면 위와 똑같이 해당 파일 있는곳에서 pwd 해서 넣어주시면 됩니다.
done

제가 알려드린 명령어

[root@localhost data]# ./gcf2sac *.gcf 이게 실행이 된다면 굳이 이렇게 for문을 안쓰고

inc 파일 내용에다가

#!/bin/sh

/경로/gcf2sac *.gcf

이렇게 하셔도 되겟네요. for문을 쓰면 작업처리가 좀 늦어져서....ㅎㅎ

이상입니다 수고하세요.

khjcyber21c의 이미지

덕분에 지금 잘 사용하고 있습니다. 리눅스가 처음이라서 많이 막막한데

많은 도움이 됐습니다.

감사합니다.

khjcyber21c의 이미지

덕분에 지금 잘 사용하고 있습니다. 리눅스가 처음이라서 많이 막막한데

많은 도움이 됐습니다.

감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.