[shell]避免使用非必要的临时文件

Linux三剑客grep、awk和sed grep(Global Regular Expression Print) 命令用于搜索文件的特定模式,它不能增加、修改、删除文本内容,通常用于搜索过滤文本,显示被模式匹配到的行。使用正则表达式进行文本匹配(正则表达式参考文章《Python正则表达式》),它的使用权限是所有用户。扩展正则表达式(egrep)添加-E-P参数可以让grep使用perl的正则表达式语法。 阅读详情

         在编写 Shell 脚本时往往在不必要使用临时文件的情况下使用了临时文件。这不仅增加了而外的代码编写工作量(用于处理创建、读取、和删除临时文件等),而且可能使脚本运行速度变慢(文件 I/O 毕竟不是快的操作)。

下面的例子中假设有个脚本的功能是往当前目录下所有的.txt 文件中添加如下一行文本:

--End of file name--

清单 8.和清单 9.中的代码分别显示了在不必要使用临时文件的情况下使用临时文件的代码和不需要使用临时文件的代码。

清单 8. 在不必要使用临时文件的情况下使用临时文件
#!/usr/bin/ksh

ls -lt *.txt | awk '{print $NF}' > tmp #将命令输出重定向到临时文件 tmp

cat tmp

typeset fileName

typeset lastLine

while read fileName #逐行读取临时文件中的每一行

do

 lastLine=`tail -1 "$fileName"`

 if [ ! "$lastLine" == "--End of $fileName--" ]; then

   echo "--End of $fileName--" >> $fileName

 fi

done <tmp #从临时文件进行输入重定向



rm tmp #删除临时文件
清单 9. 不使用临时文件
#!/usr/bin/ksh

typeset fileName

typeset lastLine

for fileName in $(ls -lt *.txt | awk '{print $NF}')

do

 lastLine=`tail -1 "$fileName"`

 if [ ! "$lastLine" == "--End of $fileName--" ]; then

   echo "--End of $fileName--" >> $fileName

 fi

done

shell中 <<<(Here String)的使用 shell 中 <<< here string的使用及跟<()进程替换的对比 阅读详情

相关推荐

sed: could not open temporary file /etc/sedbkUwRn: Permission denied

海思交叉编译器安装出现错误 sed: couldn't open temporary file /etc/sedbkUwRn: Permission denied 解决方法: sudo su 再source 安装脚本

一只海星的主页 6477

sed –i修改文件报couldn't open temporary file

先说结论:sed修改文件需要在当前目录有写权限,因为sed原理是在当前目录创建一个临时文件,修改临时文件,然后用修改好的临时文件替换源文件,然后删除临时文件。1、  在/home/test下面有文件test.xmlHome文件权限:root/root755Test文件权限: root/root 755Test.xml文件:  root/root 7772、  切换到另外一个用户执行sed命令,这里...

Smartershining的博客 2万+

基本的SED命令有大量的SED命令

基本的SED命令基本的SED命令基本的SED命令基本的SED命令基本的SED命令

【Shell 命令集合 文件管理】Linux创建临时文件或目录的命令 mktemp 命令使用教程

mktemp命令是Linux系统中用于创建临时文件或目录的命令。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 3282

基于stm32的数控恒压恒流电源设计方案

基于stm32的数控恒压恒流电源设计方案 基于stm32的数控恒压恒流电源设计方案 不包实物,可自己动手制作,可代做 本设计采用220V市电输入工频变压器,将220V交流电压降为24V交流电压,经过全桥整流加电容滤波,输出约32V直流电压.可调输出电压方案采用线性稳压调整器方案,即运放处于比较调整状态,运放输出驱动P型MOS管,电压输出端由电阻分压反馈至运放同相输入端,运放反相输入端由STM32单片机控制TLC5615数模转换器输入模拟电压,根据运放构成比较器原理,运放的同相端和反相端始终趋向于电压相等的特

m0_72265581的博客 7218

A B C三个气象站的小波分析结果解读

在小波分析的过程中,信号的不同频率分量会在不同的尺度上显现,而纵轴上的数值表示信号在相应尺度上的强度或能量。2. **小波方差的横轴(水平轴)**:横轴上的尺度表示用于分析的小波函数的尺度。1. **共同趋势:** 在所有三个点的小波方差图中,随着尺度的增加,方差逐渐增大,尤其是在较大的时间尺度上。3. **尺度30的特殊性:** 在所有点的小波方差图中,尺度30似乎是一个特殊的点,对应着一个较长的时间尺度上的波动或变化。2. **方差的大小:** 方差的大小反映了在相应尺度下信号的波动强度。

weixin_44259522的博客 859

linux 文本编辑器_学习使用 Sed 文本编辑器 | Linux 中国

Sed 缺少通常的文本框,而是按照用户的命令直接写入到文件上。• 来源:linux.cn • 作者:Seth Kenlon • 译者:Xingyu.Wang •(本文字数:5301,阅读时长大约:7 分钟)sed 命令是为 AT&T 最初的 Unix 操作系统第 7 版创建的,此后,可能每一个 Unix 和 Linux 操作系统都包含了它。sed 应用程序是一个 流编辑器,与文本编辑器不同...

weixin_31000553的博客 255

从命名玄学看单片机江湖:STC、STM32与ESP32的型号密码与设计哲学

本文解析了STC、STM32和ESP32三大主流单片机系列的型号命名规则,揭示了其背后的设计哲学与市场策略。通过详细解读STC89C52、STM32F103C8T6等具体型号,帮助开发者理解芯片核心特性、性能等级及适用场景,为嵌入式系统选型提供实用指南。

g5h6i的博客 761

Linux Shell 编程实战技巧

目前,越来越多的企业应用会部署在 Linux 系统上的,而 Linux Shell 脚本可以极大地帮助我们完成这些应用的运维任务。这使得 Linux Shell 开发技能成为开发人员的一项重要的、有竞争力的技能。本文就笔者的实际开发经验,以 Korn Shell 为例分享了脚本开发中的常见问题及相关技巧。 避免定时任务脚本的常见问题 脚本调试技巧 处理大段字符输出 避免使用非必要的临时文件 使用支...

vAgile的专栏 198

从SRIOV到SIOV:PCIe虚拟化技术下一代革命

如果说SR-IOV是过去十年PCIe虚拟化的“标杆方案”,那SIOV就是为超大规模云数据中心、AI集群量身打造的“破局者”——它解决了SR-IOV难以逾越的扩展性瓶颈,同时平衡了性能、成本与生态兼容性。今天就从“为什么需要SIOV”到“SIOV到底强在哪”,再到“未来要解决什么问题”,做一次全方位深度拆解。

存储随笔 2557

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 156

linux 创建临时文件命令,SHELL中创建临时文件的方法

有时候,我们需要创建文件临时存放一些输出的信息,创建文件时就可能出现文件名存在的问题。如何创建唯一的文件名,Linux为我们提供几个方案:1、mktemp(强烈推荐)The mktemp utility takes the given filename template and overwrites a portion of it to create a unique filename. T...

weixin_29231027的博客 717

优快云 付费专栏连载第 3 篇|Cadence Allegro 8 层板布局实战教程:RK3568 硬件模块化分区布局,DDR4 内存约束区域设置、布局禁忌避坑指南

本文是 RK3568 8 层板高速 PCB 设计实战专栏的第 3 篇,聚焦 DDR4 布局阶段的核心方法论与 Allegro 实操。文章从布局前 6 项前置检查清单入手,系统讲解模块化分区布局的五大黄金原则,并给出 160mm×100mm 样板的 5 大功能分区实战案例。随后以图文步骤演示如何在 Allegro 中创建 ROOM_DDR4 与 ROOM_CPU 约束区域,并强调 Hard Room 硬约束的强制校验作用。

weixin_44520581的博客 1732

【Shell 命令集合 文件管理】Linux 清理临时文件 tmpwatch命令使用教程

`tmpwatch`命令是一个用于清理临时文件的工具,它可以自动删除指定目录中的过期文件。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2182

从零开始跑通3DGS教程:(五)3DGS训练

本文介绍了在Docker环境中训练3DGS(3D Gaussian Splatting)的方法,属于《从零开始跑通3DGS教程》系列文章的第五部分。主要内容包括:Docker环境准备(基于pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime镜像)、容器内conda环境配置(安装必要依赖和3DGS相关组件)、以及训练命令执行步骤。文章提供了详细的命令行操作流程,帮助读者快速搭建3DGS训练环境。适合在Linux系统、Nvidia GPU环境下使用,完整教程可参考系列文章

诺有缸的高飞鸟的博客 1751

基于AI大模型实现自然语言转SQL、SQL解释、SQL优化和SQL转换

随着大数据和人工智能技术的发展,数据分析和数据挖掘在各行各业中的应用越来越广泛。SQL(Structured Query Language)作为关系数据库的查询语言,是数据分析的重要工具。然而,SQL语言的复杂性和专业性使得许多非技术背景的用户难以直接使用,阻碍了数据的广泛利用。为了降低SQL的使用门槛,许多研究者和企业开始探索如何通过自然语言处理(NLP)技术,将自然语言转化为SQL查询语句,从而让用户可以通过自然语言与数据库进行交互。

AI天才研究院 2238

shell中创建临时文件的命令

shell中创建临时文件的命令。

码不停歇的博客 275

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux tempfile 命令详解:Shell 脚本临时文件安全生成神器

tempfile是Linux系统中用于生成唯一临时文件名的命令,常见于Debian系发行版。默认在/tmp目录下创建以tmp.为前缀的文件名,支持通过选项自定义目录、前后缀和文件权限(如-d指定目录、-p设置前缀、-m 600限制权限)。示例包括生成带后缀的临时文件(如.log)或在脚本中存储文件名变量。注意:该命令不自动创建文件,需手动操作;非所有Linux发行版均预装,建议优先使用更通用的mktemp。临时文件应使用后及时清理,确保安全性。替代方案包括mktemp或结合进程ID/随机数生成文件名。

qq_36742166的博客 195

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux C程序中获取shell脚本输出

linux C程序中获取shell脚本输出琴 剑keensword007@sina.com> 本文使用docbook书写,您可以在这里获得xml文件  Abstract本文描述了从Linux程序中执行shell(程序、脚本)并获得输出结果的方法。Table of Contents1. 前言2. 使用临时

K.I.S.S - Keep It Simple, Stupid 2523

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Shell中建立与使用临时性文件的方法详解

文章目录Shell中建立与使用临时性文件的方法详解$$变量mktemp程序/dev/random与/dev/urandom特殊文件总结 Shell中建立与使用临时性文件的方法详解 前言 在我们日常开发中经常会需要用到临时文件,本文就给大家介绍了关于Shell建立与使用临时性文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 虽然使用管道可以省去建立临时性文件的需求,不过有时候临时性文件还是派的上用场的。UNIX不同于其他操作系统的地方就是:它没有那种将不再需要的文件设法神奇删除的想法

qq_43373608的博客 1468

关于shell脚本如何加密,避免敏感信息泄露

不同加密方法的优缺点1、Base64 编码简单易用,适合简单的隐藏需求。不是真正的加密方式,任何人都可以轻松解码。不适合保护敏感信息。2、OpenSSL 加密提供强加密算法(如 AES-256-CBC),支持多种安全特性(如加盐、PBKDF2),适合保护敏感信息。相对复杂,需要管理密码文件和依赖项。3、shc 工具可以编译 Shell 脚本为二进制文件,防止直接查看脚本内容。并不是真正的编译器,生成的二进制文件仍然依赖于原始 Shell 解释器;

weixin_42159203的博客 3064

linuxc获取shell输出值

 1. 前言   Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而我

1753
上一篇: [shell]避免定时任务脚本的常见问题
下一篇: 一个 Linux 上分析死锁的简单方法
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值