📌  相关文章
📜  将文件内容转换为小写或大写的 Shell 脚本

📅  最后修改于: 2022-05-13 01:57:34.620000             🧑  作者: Mango

将文件内容转换为小写或大写的 Shell 脚本

在这里,我们将看到如何将文件转换为用户指定的小写或大写。我们将编写一个 POSIX 兼容的 shell 脚本,它将在输入文件后为我们提供所需的输出,例如sample.txt,一个由小写、大写、数字和特殊字符组合而成的文本文件

例子:

File Content

this is lowercase

THIS IS UPPERCASE

$P3C14L C#4R4CT3R$

1234567890

OUTPUT

Uppercase

THIS IS LOWERCASE

THIS IS UPPERCASE

$P3C14L C#4R4CT3R$

1234567890

Lowercase

this is lowercase

this is uppercase

$p3c14l c#4r4ct3r$

1234567890

方法:

  • 询问用户选择他们是否想从大写转换为小写,反之亦然
  • 阅读选择
  • 根据选择进入 Switch 案例。如果选择不是上述选项,则退出时。
  • 询问用户文件名
  • 检查文件是否存在,如果不存在则以错误代码 1 退出,否则继续
  • 根据先前选择的用户选择翻译文件内容并使用 tr 命令打印输出。
  • 脚本结束

外壳脚本

#!/bin/sh
# shebang to specify that this is an shell script

# Function to get File
getFile(){
    # Reading txtFileName to convert it's content
    echo -n "Enter File Name:"
    read txtFileName
    # Checking if file exist
    if [ ! -f $txtFileName ]; then
        echo "File Name $txtFileName does not exists."
        exit 1
    fi
}

clear
  echo "1. Uppercase to Lowercase "
  echo "2. Lowercase to Uppercase"
  echo "3. Exit"
  echo -n "Enter your Choice(1-3):"
  read Ch

  case "$Ch" in
    1) 
      # Function Call to get File 
      getFile    
      # Converting to lower case if user chose 1     
      echo "Converting Upper-case to Lower-Case "
      tr '[A-Z]' '[a-z]' <$txtFileName
    ;;

    2)
      # Function Call to get File 
      getFile
      # Converting to upper case if user chose 2
      echo "Converting Lower-Case to Upper-Case "
      tr '[a-z]' '[A-Z]' <$txtFileName
    ;;
    

    *) # exiting for all other cases
        echo "Exiting..."
        exit
    ;;
  esac

输出:

将文件转换为用户指定的小写或大写的 Shell 脚本

示例文本文件并使我们的脚本可执行

使用 cat 命令显示示例文本文件的内容,并通过使用 chmod 命令使其可执行来修改我们的脚本。

转换输入和输出

将文件转换为用户指定的小写或大写的 Shell 脚本

将文件内容从大写转换为小写

将文件转换为用户指定的小写或大写的 Shell 脚本

将文件内容从小写转换为大写

在不存在的文件上运行

将文件转换为用户指定的小写或大写的 Shell 脚本

在案例文件中不存在