程序代码如下:
#!/bin/bash
# 将一个指定的输入文件内容转换为大写
E_FILE_ACCESS=70
E_WRONG_ARGS=71
if [ ! -r "$1" ] # 判断指定的输入文件是否可读
then
echo "Can't read from input file!"
echo "Usage: $0 input-file output-file"
exit $E_FILE_ACCESS
fi
if [ -z "$2" ] # 确保是有效的输出文件名
then
echo "Need to specify output file."
echo "Usage: $0 input-file output-file"
exit $E_WRONG_ARGS
fi
exec 4<&0 # 将文件描述符与 stdin 联系起来,保存了 stdin
exec < $1 # 将会从输入文件中读取
exec 7>&1 # 将文件描述符与 stdout 联系起来,保存了 stdout
exec > $2 # 将写到输出文件中
# -----------------------------------------------
cat - | tr a-z A-Z # 转换为大写
# 从 stdin 中读取然后写到 stdout 上,stdin 和 stdout 都被重定向了
# -----------------------------------------------
exec 1>&7 7>&- # 恢复 stdout.
exec 0<&4 4<&- # 恢复 stdin.
# 恢复之后, 下边这行代码将会如期望的一样打印到 stdout 上
echo "File \"$1\" written to \"$2\" as uppercase conversion."
exit 0
用 tr 命令实现了小写到大写的转换。
关闭文件描述符的方法
n<&- 关闭输入文件描述符 n.
0<&-, <&- 关闭 stdin.
n>&- 关闭输出文件描述符 n.
1>&-, >&- 关闭 stdout
Shell 示例:将指定的文件内容转换为大写的更多相关文章
-
示例:Servlet读取文件内容并在页面打印输出
package com.mhb; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; impo ...
-
将PPT文件内容转换为图片放在Email邮件正文中发送
通过Email推送统计报告.一般除了要求将PPT报告文件作为附件发给用户,同时希望将报告内容在邮件中直观展示. 一份统计报告中经常包含柱状图.饼图.好看的图表,这些信息要直接在Email中展示比较复杂 ...
-
Linux Shell:根据指定的文件列表 或 map配置,进行文件位置转移
读取配置文件,进行文件位置转移 在whenb.csv中指定了需要从/home/root/cf/下移除到/home/root/cf_wh/下文件列表,whenb.csv中包含记录如下: enb- enb ...
-
【Shell】按行读取文件内容
方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done < ...
-
shell ssh 远程机器 追加文件内容
在host1上,把下面的两行内容通过ssh追加到host2上的/etc/ca-certificates.conf文件中 I am a student Are you ok ssh host2 &quo ...
-
shell怎么判断两个文件内容是否相同
#cat diff_two_file#/bin/sbinfile1=/mnt/mmc/test/aafile2=/mnt/mmc/test/bbdiff $file1 $file2 > /dev ...
-
Shell——Linux/Mac 终端复制文件内容到剪切板
pbcopy < filename 如: pbcopy < README.md 效果如下: 说明:上图中 # gitskills 即README.md 中内容.
-
如何将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue|tr '[:lower:]' [:upper:] >> /tmp/issue.out
-
iconv内容,convmv文件名,unix2dos,dos2unix文件格式转换,od/cut/wc/dd/diff/uniq/nice/du等命令,linux文件名乱码,文件名,文件内容,vim编码设置
1.enconv文件名编码转换,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下 enconv -L zh_CN -x UTF-8 filename enconv -L GB2312 -x ...
随机推荐
-
数迹学——Asp.Net MVC4入门指南(4):添加一个模型
一.添加模型类 二.添加MovieDBContext类,连接数据库 DbContext类继承自 System.Data.Entity; 负责在数据库中获取,存储,更新,处理实例 MovieDBCont ...
-
.net 添加不同项目框架引用出现的问题
问题描述: winform项目添加web项目时出现问题,winform项目添加web项目类时,老是报找不到这个类的命名空间 最后才知道两个项目所建的框架不一样,一个是.net framework 4, ...
-
MySQL MyISAM/InnoDB高并发优化经验
最近做的一个应用,功能要求非常简单,就是 key/value 形式的存储,简单的 INSERT/SELECT,没有任何复杂查询,唯一的问题是量非常大,如果目前投入使用,初期的单表 insert 频率约 ...
-
ElasticSearch 插件jdbc import(1)-----定时执行
定时执行 参数schedule用来配置cron定时表达式 同时支持JSON数组的方式定义多个定时表达式: 例子如下: "schedule" : "0 0-59 0 ...
-
java http post tomcat解除 长度限制
1. Get方法长度限制 Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制.这个限制是特定的浏览器及服务器对它的限制. 如:IE对URL长度的限制是20 ...
-
[转]numpy 100道练习题
100 numpy exercise 翻译:YingJoy 网址: https://www.yingjoy.cn/ 来源:https://github.com/rougier/numpy-100 Nu ...
-
[kernel]如何主动触发一次kernel panic
Step1: echo 1 > /proc/sys/kernel/sysrq 或者如果不想每次运行上面的命令,可以echo "kernel.sysrq=1" >> ...
-
免费SSL证书 - Let&#39;s Encrypt申请(WINDOWS + IIS版)
Let’s Encrypt 项目是由互联网安全研究小组ISRG,Internet Security Research Group主导并开发的一个新型数字证书认证机构CA,Certificate Aut ...
-
Eclipse Dynamic Web Module 3.0 requires Java 1.6 or newer &;&; Filter mapping specifies an unknown filter name characterEncodingFilter
一直在宇宙最强的 IDE 下生长的,自然很难习惯 eclipse 这种开源且免费且各种版本且各种定制的 IDE 下没有少吃苦头. 最近用 maven 搭建了一个 springmvc/mybatis 的 ...
-
人工智能实践:linux 和 python 基础简介
linux下的目录 绝对路径:是以根目录(" / ")为起点的完整路径,以你所要到的目录为终点. 相对路径:是你当前的目录(" .")为起点的路径,以你所要到的 ...