这里纪录一些linux下用到的小技巧,以免遗忘

在linux中经常碰见各种文件处理。最常用的就是替换文件中的某些字符。常见字符替换还是很容易完成。但是有些不可见字符以及ascii编码字符等等都无法直接使用常见方法替换。这里可以用下面的几种方法进行处理

1.sed 方法

sed -i 's/$(echo -ne "\001")/|/g'  file  #这里就可以通过这种方式直接使用ascii编码来替换不可见的字符。echo "\001"这种方法可以打印出对应的ascii编码
sed -i ".bak" 's/$(echo -ne "\002")/!/g' file #这里跟上面一样,区别在于有些系统的sed -i参数需要一个备份后缀,会将源文件备份成指定的后缀

2.perl one line 方法

perl -lane '$F[0]=~s/0\x01/|/g'  file  #这样就可以把文件里对应的001的ascii编码替换成别的字符。这些写成0\x01即可(实际上就是0x01的表述,x被转义)

3.awk 方法

awk '{c=sprintf("%c",1);gsub(/c/,"#",$0);print $0}' file #这种方法就能轻松替换指定的特殊字符。sprintf 能把数字转换成对应的ascii字符。所以可以转换一些不可见,无法直接输入的字符

linux 小技巧(查找替换文件中的ascii编码字符)的更多相关文章

  1. linux下使用vim替换文件中的^M换行符

    在linux下打开windows编辑过的文本,会出现由于换行符不一致而导致的内容格式错乱的问题.最常见的就是出现^M . 我出现的问题是:在windows编辑过的文件,传到linux上后再用vim打开 ...

  2. python 小程序,替换文件中的字符串

    [root@PythonPC ~]# cat passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x: ...

  3. [linux小技巧]批量移动文件

    for i in {1..23};do mv test$i/ ../;done

  4. Linux下Sed命令替换文件中的所有IP

    命令: sed -ri 's/([0-9]{1,3}\.){3}[0-9]{1,3}/localhost/g' es_create_index.sh 如图:

  5. sublime text3怎么批量查找替换文件夹中的字符

    在编写代码的时候,往往有些代码是重复的,但是如果要改一处代码,其他的地方也要改.那么怎么批量修改呢?下面小编就以sublime text3为例来讲解一下sublime text3怎么批量查找替换文件夹 ...

  6. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  7. servlet操作本地文件汇总: 判断文件是否存在;文件重命名;文件复制; 获取文件属性信息,转成Json对象; 获取指定类型的文件; 查找替换.txt中的文本

    package servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; ...

  8. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

  9. Linux小技巧scp命令

    Linux服务器运维小技巧scp命令详细教程. 前言 今天给大家带来的是linux中比较实用的命令scp.善用小技巧,解决工作中的痛点. 掌握一门好的技术或者说一门好的艺术,最快捷的方式就是融入到工作 ...

随机推荐

  1. MySql5.7环境搭建

    1. 安装mysql的linux系统 [root@grewan ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@grewan ...

  2. arm处理器

    arm处理器 arm处理器相关 1.体系架构定义了指令集(ISA)和基于这一体系结构下处理器的编程模型. arm卖的是架构或者已经设计好的公版ip核 卖给苹果高通的是架构,需要苹果高通通过架构设计自己 ...

  3. SQLite 之 C#版 System.Data.SQLite 使用

    简介 SQLite简介 SQLite,是一款轻型的关系型数据库.它的设计目标是嵌入式. 它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C++.C ...

  4. Java源码学习 -- java.lang.String

    java.lang.String是使用频率非常高的类.要想更好的使用java.lang.String类,了解其源代码实现是非常有必要的.由java.lang.String,自然联想到java.lang ...

  5. Cassandra Issue with Tombstone

    1. Cassandra is quicker than postgre and have lower change to lose data. Cassandra doesn't have fore ...

  6. SQLiteDatabase的使用

    新建DBHeler.JAVA package com.hixin.db; import java.util.ArrayList; import java.util.HashMap; import co ...

  7. 读书笔记系列01-《收获、不止Oracle》

    读书笔记系列01-<收获.不止Oracle> 最近计划将看过的Oracle书籍依次系统的总结下读书笔记. 这本书是我个人觉得写的最有趣的Oracle书籍,也是我接触Oracle后第一本完全 ...

  8. 刨根究底字符编码之七——ANSI编码与代码页(Code Page)

    ANSI编码与代码页(Code Page) 一.ANSI编码 1. 如前所述,在全世界所有国家和民族的文字符号统一编码的Unicode编码方案问世之前,各个国家.民族为了用计算机记录并显示自己的字符, ...

  9. springboot redis 缓存对象

    只要加入spring-boot-starter-data-redis , springboot 会自动识别并使用redis作为缓存容器,使用方式如下 gradle加入依赖 compile(" ...

  10. 【转载】C/C++中的char,wchar,TCHAR

    点击这里查看原文章 总体简介:由于字符编码的不同,在C++中有三种对于字符类型:char, wchar_t , TCHAR.其实TCHAR不能算作一种类型,他紧紧是一个宏.我们都知道,宏在预编译的时候 ...