Shell中同时读多个文件

Shell脚本学习指南(六)——输入/输出文件与命令执行 本篇博客将完成介绍Shell语言。首先讨论的是文件:如何以不同的方式处理输入/输出和产生文件名。接着是命令替换,也就是让你使用一个命令的输出作为命令行的参数。然后,我们继续将重点放在命令行上,讨论Shell提供的各类引用。最后,则是深入讨论命令执行顺序,并针对内建于Shell里的命令作介绍。前面我们介绍过printf命令,下面我们将完整地介绍它。printf第一部分为描述符规格的字符串,它的最佳提供方式是放在引号内的字符串常数。第二部分为参数列表,例如字符串或变量值的列表,该列表需与格式规格相对应。 阅读详情

一个文件分割成多个文件

有时需要提取文件中的一个或多个列元素生成新的文件,这一操作在 Shell 里很容易实现。比如有一个数据文件 data,有三列信息:姓名、学号、班级。

redraiment 0612800134 0601
christine 0612800136 0601
zb 0612800229 0602

现在需要这个文件的第一列和第二列信息分别存到文件 f1f2 中,可以用 awk 提取,也可以用下面这个简单 shell 程序:

#!/bin/sh

while read f1 f2 f3
do
    echo $f1 >> f1
    echo $f2 >> f2
done

多个文件合并成一个文件

如果想把多个文件重新合并成一个多列文件,而不是追加到文件尾处。例如把上列中生成的 f1f2 重新组成 join.txt 。这时需要同时操作多个文件,就像 C 语言中用 fopen 同时打开多个文件,在 shell 里也是类似的。只是在 shell 里叫做“文件描述符”,用“0-9”十个数字表示。其中 0、1、2 分别是系统的标准输入、输出、错误。“3-9”则由用户只有使用。我们就可以任选两个来重定向输入。脚本如下:

#!/bin/sh

exec 3<f1
exec 4<f2
while read f1 <&3 && read f2 <&4
do
    echo $f1 $f2 >> join.txt
done

版权声明

本人的所有原创文章皆保留版权,请尊重原创作品。
转载必须包含本声明,保持本文完整,并以超链接形式注明原始作者“redraiment”和主站点上的本文原始地址。

联系方式

我的邮箱,欢迎来信(redraiment@gmail.com
我的Blogger(子清行
我的Google Sites(子清行
我的CSDN博客(梦婷轩
我的百度空间(梦婷轩

避坑指南:Win10安装Docker Desktop时Hyper-V报错的7种解决方案(2024最新版) 本文提供了2024年最新、最全面的Windows 10系统下Docker Desktop安装时Hyper-V报错的解决方案指南。文章深入剖析了Hyper-V与Docker的共生关系,并系统性地给出了从BIOS/UEFI设置、Windows功能启用、bcdedit命令修复到处理多虚拟化环境共存等7种核心解决方案,帮助开发者彻底解决安装困局,顺利部署容器化开发环境。 阅读详情

相关推荐

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战)

本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发。

rose2的博客 528

 Linux Shell编程 | tee命令各种使用场景详解

tee命令各种使用场景详解 前言 输出包含两种类型:一种是程序的运行结果(标准输出),一种是状态和错误信息(标准错误)。 标准输出(standard output)和 标准错误(standard error),默认是连接至屏幕 标准输入(standard input) 默认是连接至键盘 tee命令主要被用来向standout(标准输出流,通常是命令执行窗口)输出同时也将内容输出文件 tee命令介绍 命令格式: ...

我自人间漫浪的博客 5272

5G SA问题优化指导书

5G SA问题优化指导书

linux shell tee命令:既想把输出保存到文件中,又想在屏幕上看到输出内容

linux shell tee命令 tee的作用是将一份标准输入多重定向,一份重定向到标准输出/dev/stdout,然后还将标准输入重定向到每个文件FILE中。 在执行Linux命令时,我们可以把输出重定向到文件中,比如 ls >rumenz.txt,这时不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令了. 总结: tee命令取标准输入,把这些内容同时输出到标准输出和(多个文件中,tee命令可以重定向标准输出多个文件。要注意的是:在使用管道线时,前

西京刀客 8764

如何用shell一次多个文件内容

在写shell脚本的时候,因为shell本身的数据结构很简单,连二维数组都不能支持,所以配置文件的形式也不能过于复杂(个人看法,有什么意见请说),因此需要写多个配置文件来满足业务。通常情况下,我们用shell取一个配置文件是这样写的:while read line; do echo $line done < a.configa.config文件的内容是这样的:a=1 b=2 c=

十七 意林 3470

[骚操作]shell同时多个文件

示例 exec 3<pre_data/wav.scp exec 4<pre_data/text exec 5<pre_data/text while read wav <&3 && read txt <&4 && read txt1 <&5 do key=`echo $wav | awk -F ' ' '{ printf $1}'` wav=`echo $wav | awk -F ' ' '{

的博客 2795

[Linux]Shell命令之彈窗操作 - 在Linux下實現彈窗提醒

1、在遠程溝通過程中,由於權限管控,對方可能無法在自己的Terminal進行中操,比如開Verdi、寫文件等等,此時我們可以丟該對方一個Terminal,用如下指令: xterm -display sgrid12:0 & 其中sgrid12是對方的機器號。 2、怎樣實現Linux下的彈窗操作呢? xmessage -center -disp sgrid12:0 " ...

元直的博客 7241

shell同时多个文件的方法

1. 单个文件取 在shell脚本下,可以多种方式实现按行文件,如下: for line in `cat ${input_filename}` do echo $line done while read line do echo $line done ${input_filename} 其中第二种方式是将文件重定向到标准输入中 2. 多个

Achiberx 4778

Linux shell 脚本互斥同步

在Linux shell中当两个脚本需要同时访问同一个文件时,就会出现冲突。对于这种冲突可以使用flock命令解决。 flock的加锁和解锁方法如下: 加锁: [html] view plain copy exec 3&gt;filename # open a file handle; this part will always succeed flock -x 3 # loc...

mtAsnow 1111

linux shell文件,shell同时多个文件的方法

1. 单个文件取在shell脚本下,可以多种方式实现按行文件,如下:for line in `cat ${input_filename}`doecho $linedonewhile read linedoecho $linedone < ${input_filename}其中第二种方式是将文件重定向到标准输入中2. 多个文件取方法那如何实现同时多个文件呢?我们可以继续利用bas...

weixin_39909001的博客 1707

多个python脚本同时执行_用shell同时启动多个python脚本

1、背景是有三个脚本a.py, b.py, c.py三个都是爬虫,里面都是while(true)方式运行的,不会主动运行结束。每次启动他们,就需要:python a.py > logs/a.logpython b.py > logs/b.logpython c.py > logs/c.log2、上linux批处理:有点麻烦,想搞个批处理:#!/bin/shpython a.py ...

weixin_39845406的博客 3108

Ubuntu 下使用shell脚本同时启动多个程序

Ubuntu 下用同时启动多个程序

weixin_39100510的博客 4058

Linux环境通过shell脚本同时运行多个命令

Linux环境下,如何实现多个命令同时运行 思路:通过shell脚本 1、新建bash_test.sh 2、编辑 #!/bin/bash nohup python3 -u run0001.py >./out/0001.out & nohup python3 -u run0002.py >./out/0002.out & 说明:nohup加在一个命令的最前面,表示不挂断的运行命令 -u 表示实时输出到.out &加在一个命令的最后面,表示这个命令放在后台执行 3、运行 c

chenbaixing的博客 1万+

Shell 同时多个文件

同时取两个文件,并且把他们同行 合并到一个行  写到一个合并的文件shell脚本:#!/bin/bash #set -x cd `dirname "$0"`/../ INAS_SCRIPT_ROOT=`pwd` function make_if_no_existis_dir() { local dir=$1 if [ ! -e "${dir}" ] then ...

liuxiangke0210的专栏 4519

shell脚本同时执行多个python脚本_用shell同时启动多个python脚本

1、背景是有三个脚本a.py, b.py, c.py三个都是爬虫,里面都是while(true)方式运行的,不会主动运行结束。每次启动他们,就需要:python a.py > logs/a.logpython b.py > logs/b.logpython c.py > logs/c.log2、上linux批处理:有点麻烦,想搞个批处理:#!/bin/shpython a.py ...

weixin_39633165的博客 2549

linux shell 对两个文件的处理

<br /> <br />(1)两个文件的交集,并集<br />前提条件:每个文件中不得有重复行<br />1. 取出两个文件的并集(重复的行只保留一份)<br />cat file1 file2 | sort | uniq > file3<br />2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)<br />cat file1 file2 | sort | uniq -d > file3<br />3. 删除交集,留下其他的行<br />cat file1 file2 | sort | uni

train的专栏 2018

awk 输出多个文件 多路输出

awk中经常需要根据不同条件,将内容输出到不同文件中。写了个简单的awk小脚本,可以满足这个需求。#!/bin/awk -f{ if(NR==FNR) {a[$0]++} else {if($1 in a) print $0 >> "user_agence" else print $0

bitcarmanlee的博客 5886

shell 两个文件内容对比,相同的部分输出到另一个文件

shell file compare #!/bin/bash [ -e "common.txt" ]&&{ rm -f common.txt } [ "$#" != "2" ]&& { echo "input error" exit 0 } sed '/^\s*$/d' $1 > uniq1.txt sed '/^\s*$/d' $2 > uniq2.txt for Text1 in

qq_16009667的博客 3832

awk中输出多个文件及使用Shell中传入的参数

1、awk中输出多个文件文件0:11122221112222目标:将列数不同的行分别输出到不同的文件中,该例为:输出文件1:111111输出文件2:22222222AWK源代码:awk '{ if(NF==3)print $0 > 1;else print $0 > 2 }' 02、使用Shell中传入的参数问题同1AWK源代码:dir=/home/niewfawk 'BEGIN{file1="'$dir'/1";file2="'$dir'/2"}{if(NF==3)print $0 > file1;e

nwf5d的专栏 1万+

shell脚本打印多行文本到文件

刚开始以为echo """aaaa "bbb"ccc"""可以解决问题,后来发现引号没了。 所以只能采用HERE用法。 cat aaaa "bbb" ccc HERE 如果要重定向到文件: (cat aaaa "bbb" ccc HERE )>>$FILENAME 用HERE语言有个好处,就是里面可以直接使用变量。比如:要用$NUM (cat aaaa "bb

5194
上一篇: 在命令行下发送短信
下一篇: CSDN视频频道检测到恶意软件!
redraiment
博客等级 码龄20年 1145粉丝 108原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值