因此,我有一个名为“ concat”的shell脚本,该脚本当前接受命令行参数并打印在命令行上命名的文件的内容。现在,我需要创建一个名为“ concatconvert”的脚本,该脚本将调用“ concat”脚本,获取文件内容并将其转换。
以下是我的脚本“ concat”的代码:
#!/bin/bash
if [ $# -eq 0 ]; then
printf "Usage: concat FILE ... \nDescription: Concatenates FILE(s)
to standard output separating them with divider -----.\n" >&2
exit 1
fi
for var in "$@"
do
if [[ ! -e "$var" ]]; then
printf "One or more files does not exist\n" >$2
exit 1
fi
done
for var in "$@"
do
if [ -f "$var" ]; then
cat $var
printf -- "-----\n"
fi
done
exit 0
我将使用来呼叫“ concat”
#!/bin/bash
./concat
在concatconvert脚本中。
Concatconvert将接受参数“ -u”和“ -l”
最终脚本将以以下方式执行:
./concatconvert -u test1.txt test2.txt
-u将文件内容转换为大写。
例如,"This is a test"
变为"THIS IS A TEST"
。
-l将文件内容转换为小写。
例如,"This is a test"
变为"this is a test"
。
一次只能提供一个选项。 我不太确定从哪里开始。感谢您的帮助。
答案 0 :(得分:2)
您应该使用@jenesaisquoi提到的tr
命令。
UNIX中的tr命令是用于翻译或 删除字符。
要使用它来将所有内容更改为小写字母,将是:
echo "This is Test" | tr [:upper:] [:lower:]
this is test
要使用它来将所有内容更改为大写命令,将是:
echo "This is Test" | tr [:lower:] [:upper:]
THIS IS TEST
要将其用于文件,请使用以下命令:
tr '[:upper:]' '[:lower:]' < filename