`
pipal
  • 浏览: 165859 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Unix下shell对文件随机读写

阅读更多

在《高级Bash脚本编程指南》上有一个例子,用重定向,通过shell对文件随机读写,但那方法在Unix的sh下不管用,自己写了一个,例子如下:

 

#!/bin/sh
#randRead.sh
echo 1234567890 > sFile 
exec 3<> sFile          
#read -n 4 <&3          
dd bs=1 count=4  of=/dev/null <&3 2>/dev/null
echo . | dd bs=1 count=1 >&3 2>/dev/null
exec 3>&-              
cat sFile 

运行结果如下:

root@SMP2> cat -n randRead.sh 
     1  #!/bin/sh
     2  echo 1234567890 > sFile 
     3  exec 3<> sFile          
     4  #read -n 4 <&3          
     5  dd bs=1 count=4  of=/dev/null <&3 2>/dev/null
     6  echo . | dd bs=1 count=1 >&3 2>/dev/null
     7  exec 3>&-              
     8  cat sFile               
root@SMP2> 
root@SMP2> ./randRead.sh 
1234.67890
root@SMP2> 

 

 

 

 

附ABS上的例子:

  87       echo 1234567890 > File    # 写字符串到"File".
  88       exec 3<> File             # 打开"File"并且给它分配fd 3.
  89       read -n 4 <&3             # 只读4个字符.
  90       echo -n . >&3             # 写一个小数点.
  91       exec 3>&-                 # 关闭fd 3.
  92       cat File                  # ==> 1234.67890
  93       # 随机存储.

 

0
3
分享到:
评论

相关推荐

    Shell脚本批量添加CSV数据到MySQL

    首先,`prov.csv` 是一个包含CSV(逗号分隔值)格式的数据文件,这种文件类型常用于存储表格数据,易于读写和处理。在本案例中,它可能包含了省(province)的相关数据,如省份名称等。 接着,`insert_sct_Province...

    LINUX与UNIX SHELL编程指南.pdf

    ### LINUX与UNIX SHELL编程指南知识点详解 ...通过对文件的权限进行合理配置,可以有效地保护敏感数据免受未授权访问,同时确保系统的稳定性和安全性。掌握文件权限的基础知识对于日常管理和开发工作都非常重要。

    UNIX操作系统教程 张红光

    第1章绪论.1 1.1操作系统概述1 1.1.1建立操作系统的目标1 1.1.2操作系统是用户与计算机的接口1 1.1.3操作系统是资源管理器2 1.2UNIX系统的主要特性3 1.3UNIX系统的发展史4 1.4开源软件与UNIX的推广发展6 1.4.1开源...

    unix system programming in ocaml

    可以通过定位文件指针来进行随机访问。 - **`Unix.lseek fd pos whence`**:设置文件描述符`fd`的当前位置。 ##### 2.13 针对特定文件类型的操作 针对不同类型的文件(如常规文件、设备文件等),Unix提供了不同...

    Unix环境高级编程pdf

    文件操作包括打开、关闭、读写、随机访问以及错误处理等。 3. **信号处理**:Unix通过信号机制实现异步事件通知,比如进程异常、用户中断等。程序可以注册信号处理器来响应特定信号,实现复杂的行为控制。 4. **...

    unix环境高级编程

    2. **文件I/O**:讲解文件描述符、打开与关闭文件、读写操作、随机访问以及文件权限和属性的管理。 3. **系统调用**:介绍系统调用的机制,如fork、exec、wait等,以及如何通过系统调用来实现进程间的交互。 4. **...

    UNIX环境高级编程

    书中详细讲解了如打开、读写、关闭文件,进程控制(创建、终止、等待),信号处理,内存管理等基本系统调用的使用。 2. **文件I/O**:在UNIX中,一切皆文件,包括设备。文件I/O是编程中的基础操作,书中涵盖了标准I...

    操作系统实验

    要求最后实现对文件的加密转储,或通过改道的办法进行转储。对于已加密的文件可以进行解密显示或解密后转储。形成加密或解密文件后要删除原来的文件。 建议加密过程使用按字符进行异或的方式处理,也可以是仿射加密...

    Unix编程常见问题解答

    可以使用`fcntl()`函数的`F_SETLK`、`F_SETLKW`、`F_GETLK`等选项来对文件加锁,`F_SETLK`是非阻塞的,`F_SETLKW`是阻塞的,而`F_GETLK`用于查询文件上的锁状态。文件锁可以防止多个进程同时修改同一个文件,从而...

    UNIX环境高级编程(附源代码)

    1. **文件I/O**:详细介绍了UNIX系统中的文件操作,包括打开、关闭、读写、随机访问、缓冲I/O和非阻塞I/O等。 2. **进程管理**:讲解了进程创建、进程控制、进程间通信(管道、信号、消息队列、共享内存、套接字等...

    unix 高级编程

    #### 二、Unix环境下的高级编程技术 ##### 2.1 进程管理 - **进程的概念**:在Unix系统中,每个正在运行的程序都对应一个进程,它是程序的一次动态执行过程。 - **进程控制**: - `fork()`函数:用于创建新进程。 ...

    java软件工程师课程详细版.docx

    Java 软件工程师所需的详细知识和技能,涵盖 Java 语言基础、面向对象编程、集合编程、多线程编程、GUI 编程、文件读写、对象序列化、异常处理、网络编程、国际化、J2SE 5.0 新特性、设计模式、反射机制、Unix 开发...

    python标准库(中文版)

    mmap模块可以映射文件到内存,方便对文件进行操作。UserDict、UserList和UserString模块提供了对象,它们分别是字典、列表和字符串类型的扩展。 在数据表示方面,traceback模块提供了获取、打印和格式化栈跟踪信息...

    alexxy:alexxy的一些随机进行中的工作

    由于标签为"Shell",我们可以推测这个项目与Unix或Linux环境下的Shell脚本编程有关。在这个压缩包"alexxy-master"中,很可能包含了alexxy编写的各种Shell脚本及相关文件,用于自动化任务执行、系统管理或其他相关...

    vdbench503.zip

    1. `vdbench.bash`:这是一个Bash shell脚本,可能是用于在Linux或Unix系统上启动Vdbench的命令行接口。用户可以通过修改此脚本来定制他们的测试场景。 2. `vdbench.bat`:这是Windows批处理文件,用于在Windows...

    Python3高级教程

    5.7 读写压缩文件:使用内置库处理压缩文件的读写。 5.8 固定大小记录的文件迭代:通过记录的固定长度实现文件的迭代。 5.9 读取二进制数据到可变缓冲区中:将二进制数据读取到可扩展的缓冲区。 5.10 内存映射的二...

Global site tag (gtag.js) - Google Analytics