쉘 스크립트로 원하는 문자열이나 숫자가 있는 해당 라인 출력하는 법이 궁금합니다.

augst16의 이미지

안녕하세요 쉘 스크립트를 만드는걸 구글링하며 찾는 중인데 막히는 부분이 있어서 도움 요청드립니다.
프로그래밍쪽은 전혀 베이스가 없는데 갑자기 만들어야해서 너무나 막막하네요..

vi /test/aaa1로 아래와 같은 문서를 만들었다고 치고

2020 12 28 111111111
2021 1 1 222222222
2021 1 1 33333333
2021 1 9 44444444
2021 1 9 555555555

.

.

.

문서는 계속 날짜별로 내용이 업데이트 될 예정입니다.
매일매일 당일에 해당하는 업데이트되는 라인줄만 출력되게 하고싶습니다.

오늘이 1월 9일이니 결과물이

2021 1 9 44444444

2021 1 9 555555555

이렇게만 나오게 출력하는 방법이 궁금합니다.

awk도 구글링해보고 for문이라는 것도 구글링해 시도해 보고있는데 이것들을 조합해서 원하는 날짜의 라인줄만 출력하려 하면 계속 안되네요... 너무나 답답하여 도움을 받고자 질문글 올립니다.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+내용 추가합니다.

어찌저찌 구글링을 하여

awk '$3==숫자 {print $0}' /test/aaa1

이렇게 사용하면 /test/aaa1문서에서 세번째 필드가 내가 입력한 숫자와 같으면 해당 라인을 출력해준다는 것을 발견했습니다.
숫자부분에 9를 넣어 테스트 해보았는데 잘 되더라고요.

그래서 사용자에게 숫자를 입력받고 그 숫자와 일치하는 라인을 출력해보고 싶어서

echo -n "출력할 일자 입력: "
read day
awk '$2==$day {print $0}' /test/aaa1

이렿게 스크립트를 수정했습니다만 $day로 수정하니 결과가 출력되지 않더라고요.
이 부분은 어떻게 해결해야 할까요?

황병희의 이미지

원본자료를 만드실때 규칙성이 부여되면 어떤 언어를 쓰더라도 구문분석이 쉬워집니다.
규칙성이 없으면 쎄가빠지게 정규표현식으로 지랄발광을 해도 결과물을 출력하기 쉽지 않을텐데요

규칙성으로 날짜포맷은 date 명령어 기준 --iso-8601 옵션이 참 좋더이다~~~

(bionic)soyeomul@localhost:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic
(bionic)soyeomul@localhost:~$ date --iso-8601
2021-01-09
(bionic)soyeomul@localhost:~$ 

[우분투 18.04 파여폭스 나비에서 적었어유~]

--
^고맙습니다 감사합니다_^))//

augst16의 이미지

답변주셔서 정말로 감사합니다. 써주신 댓글을 확인하기 전에 어찌저찌 구글링을 하여 awk를 이용해 3번째 필드에서 원하는 숫자값을 입력하여 일치하면 출력해주는 스크립트를 만들었는데 또 다른 문제가 생겼습니다. 사용자에게 숫자를 입력받고 입력받은 숫자와 일치하는 라인줄을 출력하려는데 여기서 또 막히네요.
본문에 내용을 추가하였는데 혹시 해결방법을 알고계신지요?

익명 사용자의 이미지

작은 따옴표 안에있는것은 awk 변수이므로 shell 변수를 사용하려면 작은따옴표 밖으로 빼야되요

awk '$2 == '"$day"' {print $0}' /test/aaa1

augst16의 이미지

와........됩니다!! 해결해 주셔서 정말로 감사드립니다!!!
프로그래밍 알지도 못하는데 갑자기 이런걸 만들려니 머리가 빠개질 것 같았는데 정말 큰 도움 받았습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.