substract and replace values in string using shell












0















I am newbie to shell scripting and learning.



I have files in folder.
which look like
1232_2019_02_09_12_29_29.txt
1232_2019_02_09_12_29_55.txt



I want to extract 2019_02_09_12_29_29 & 2019_02_09_12_29_55 from file name and convert into
2019-02-09-122929 & 2019-02-09-122955.



#!/bin/sh

path=$1

if [[ -z $1 ]];then
echo "USAGE:: Argument missing, supply full path to list all files"
exit 1
fi

if [ -f $path/all_files.txt ] ; then
rm -f $path/all_files.txt
fi

ls -l $path | grep -v "^d" | awk '{print $9}' > $path/all_files.txt

while read -r line
do
line=${line##*/}
# echo "${line%"/}"
ex1=`awk -F'|' '{print substr($1,length($1)-22, 19)}'`
# ex2=`awk -F'|' '{print substr($1,length($1)-19, 10)}'`
echo $ex1
ex2=$(echo $ex1 | cut -c 1-10)
echo $ex2
ex3=$(echo $ex1 | cut -c 12-20)
echo $ex3
done <$path/all_files.txt


But this code is not giving me desired output.



Can anyone help?









share







New contributor




Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

























    0















    I am newbie to shell scripting and learning.



    I have files in folder.
    which look like
    1232_2019_02_09_12_29_29.txt
    1232_2019_02_09_12_29_55.txt



    I want to extract 2019_02_09_12_29_29 & 2019_02_09_12_29_55 from file name and convert into
    2019-02-09-122929 & 2019-02-09-122955.



    #!/bin/sh

    path=$1

    if [[ -z $1 ]];then
    echo "USAGE:: Argument missing, supply full path to list all files"
    exit 1
    fi

    if [ -f $path/all_files.txt ] ; then
    rm -f $path/all_files.txt
    fi

    ls -l $path | grep -v "^d" | awk '{print $9}' > $path/all_files.txt

    while read -r line
    do
    line=${line##*/}
    # echo "${line%"/}"
    ex1=`awk -F'|' '{print substr($1,length($1)-22, 19)}'`
    # ex2=`awk -F'|' '{print substr($1,length($1)-19, 10)}'`
    echo $ex1
    ex2=$(echo $ex1 | cut -c 1-10)
    echo $ex2
    ex3=$(echo $ex1 | cut -c 12-20)
    echo $ex3
    done <$path/all_files.txt


    But this code is not giving me desired output.



    Can anyone help?









    share







    New contributor




    Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.























      0












      0








      0








      I am newbie to shell scripting and learning.



      I have files in folder.
      which look like
      1232_2019_02_09_12_29_29.txt
      1232_2019_02_09_12_29_55.txt



      I want to extract 2019_02_09_12_29_29 & 2019_02_09_12_29_55 from file name and convert into
      2019-02-09-122929 & 2019-02-09-122955.



      #!/bin/sh

      path=$1

      if [[ -z $1 ]];then
      echo "USAGE:: Argument missing, supply full path to list all files"
      exit 1
      fi

      if [ -f $path/all_files.txt ] ; then
      rm -f $path/all_files.txt
      fi

      ls -l $path | grep -v "^d" | awk '{print $9}' > $path/all_files.txt

      while read -r line
      do
      line=${line##*/}
      # echo "${line%"/}"
      ex1=`awk -F'|' '{print substr($1,length($1)-22, 19)}'`
      # ex2=`awk -F'|' '{print substr($1,length($1)-19, 10)}'`
      echo $ex1
      ex2=$(echo $ex1 | cut -c 1-10)
      echo $ex2
      ex3=$(echo $ex1 | cut -c 12-20)
      echo $ex3
      done <$path/all_files.txt


      But this code is not giving me desired output.



      Can anyone help?









      share







      New contributor




      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I am newbie to shell scripting and learning.



      I have files in folder.
      which look like
      1232_2019_02_09_12_29_29.txt
      1232_2019_02_09_12_29_55.txt



      I want to extract 2019_02_09_12_29_29 & 2019_02_09_12_29_55 from file name and convert into
      2019-02-09-122929 & 2019-02-09-122955.



      #!/bin/sh

      path=$1

      if [[ -z $1 ]];then
      echo "USAGE:: Argument missing, supply full path to list all files"
      exit 1
      fi

      if [ -f $path/all_files.txt ] ; then
      rm -f $path/all_files.txt
      fi

      ls -l $path | grep -v "^d" | awk '{print $9}' > $path/all_files.txt

      while read -r line
      do
      line=${line##*/}
      # echo "${line%"/}"
      ex1=`awk -F'|' '{print substr($1,length($1)-22, 19)}'`
      # ex2=`awk -F'|' '{print substr($1,length($1)-19, 10)}'`
      echo $ex1
      ex2=$(echo $ex1 | cut -c 1-10)
      echo $ex2
      ex3=$(echo $ex1 | cut -c 12-20)
      echo $ex3
      done <$path/all_files.txt


      But this code is not giving me desired output.



      Can anyone help?







      shell-script





      share







      New contributor




      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.










      share







      New contributor




      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.








      share



      share






      New contributor




      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 mins ago









      GeemeGeeme

      1




      1




      New contributor




      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Geeme is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






















          0






          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "106"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });






          Geeme is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499607%2fsubstract-and-replace-values-in-string-using-shell%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Geeme is a new contributor. Be nice, and check out our Code of Conduct.










          draft saved

          draft discarded


















          Geeme is a new contributor. Be nice, and check out our Code of Conduct.













          Geeme is a new contributor. Be nice, and check out our Code of Conduct.












          Geeme is a new contributor. Be nice, and check out our Code of Conduct.
















          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f499607%2fsubstract-and-replace-values-in-string-using-shell%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          CARDNET

          Boot-repair Failure: Unable to locate package grub-common:i386

          濃尾地震