GNU sed

去除windows编辑文本中的回车符

拜拜、爱过 提交于 2020-05-07 18:57:57
情景描述:   最近,huskiesir的朋友遇到了一个很奇葩的问题。那就是他在windows上搭建了一个http服务,把A脚本放在了上面并用linux去下载和执行,但是在执行的时候出现了问题,在linux上无法执行A脚本,报错如下:   经过huskiesir和朋友的钻研呀,发现可能是windows里面的回车符的鬼问题,“\r”   我分析linux和windows在编辑或者传输文本的时候,可能回车的时候有如下差别:     windows:\r\n     linux:\n   从上面的差别可以看出,windows是先回车符再换行符达到换行目的,而linux则是直接换行,遇到脚本不能执行,那该怎么办呢?ok,huskiedir教你一招“”葵花宝典”,哦不,是linux四剑客里面的sed去调整脚本内容,首先先解释即将用到的命令:   sed -i 's/\r//g'   这条命令当然是直接对文本内容进行操作,并且把‘\r’替换成空。-i 代表直接对文本操作(危险操作,不可编辑重要文件,建议编辑前备份一下),s参数代表替换的意思   具体sed的用法如下: [root@www ~]# sed [- nefri] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 - n 参数后

linux的基本操作(正则表达式)

故事扮演 提交于 2020-05-07 18:30:19
正则表达式 这部分内容可以说是学习shell脚本之前必学的内容。如果你这部分内容学的越好,那么你的shell脚本编写能力就会越强。所以不要嫌这部分内容啰嗦,也不要怕麻烦,要用心学习。一定要多加练习,练习多了就能熟练掌握了。 在计算机科学中,正则表达式是这样解释的:它是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多 文本编辑器 或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,抑或查询某个日志文件分析其内容,都会用到正则表达式。 其实正则表达式,只是一种思想,一种表示方法。只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串。常用的工具有grep, sed, awk 等,下面笔者就介绍一下这三种工具的使用方法。 【 grep / egrep 】 笔者在前面的内容中多次提到并用到grep命令,可见它的重要性。所以好好学习一下这个重要的命令吧。你要知道的是grep连同下面讲的sed, awk都是针对文本的行才操作的。 语法: grep [-cinvABC] ‘word’ filename -c :打印符合要求的行数 -i :忽略大小写 -n :在输出符合要求的行的同时连同行号一起输出

03:linux文件操作四剑客

对着背影说爱祢 提交于 2020-05-07 18:27:39
1.1 find查找命令   1、find命令说明       1. Linux find命令用来在指定目录下查找文件。       2. 任何位于参数之前的字符串都将被视为欲查找的目录名。       3. 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。 -name # 按文件名查找 -size # 按文件大小查找 -perm # 按权限查找 -mtime n # 查找n天内修改内容的文件 -mmin n # 查找n分钟内修改内容的文件   2、find常用查找方法 # 查找当前目录下大于9M的文件详细信息 [root@linux-node1 /] # find . -size +9M | xargs ls -lh -rw-r--r-- 1 root root 24M Jul 7 04:18 ./aaa/Python-3.7.0/ libpython3.7m.a -rwxr-xr-x 1 root root 14M Jul 7 04:19 ./aaa/Python-3.7.0/Programs/ _testembed -rwxr-xr-x 1 root root 14M Jul 7 04:18 ./aaa/Python-3.7.0/ python -rw-r--r-- 1 root root 22M Jul 6 23:53 ./aaa

Python如何实现修改文件内容的方法

给你一囗甜甜゛ 提交于 2020-05-07 12:58:12
  本文实例讲述了Python实现修改文件内容的方法。分享给大家供大家参考,具体如下:   1 替换文件中的一行   1.1 修改原文件   ① 要把文件中的一行Server=192.168.22.22中的IP地址替换掉,因此把整行替换。   data = ''   with open('zhai.conf', 'r+') as f:   for line in f.readlines():   if(line.find('Server') == 0):   line = 'Server=%s' % ('192.168.1.1',) + '\n'   data += line   with open('zhai.conf', 'r+') as f:   f.writelines(data)   ② 把原文件的hello替换成world。   #!/usr/local/bin/python   #coding:gbk   import re   old_file='/tmp/test'   fopen=open(old_file,'r')   w_str=""   for line in fopen:   if re.search('hello',line):   line=re.sub('hello','world',line)   w_str+=line   else:   w

Shell猜数字游戏

我的梦境 提交于 2020-05-07 12:49:43
这篇文章主要为大家详细介绍了 Shell 实现猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 本文实例为大家分享了Shell实现猜数字游戏的具体代码,供大家参考,具体内容如下 初学Shell时,需要使用shell完成各种各样的小目标,比如输入一个日期,计算那天是星期几,又或者编写一个小游戏。 首先给大家介绍一个概念就是RANDOM,random(),函数,random函数返回一个0~num-1之间的随机数.。random(num)是在stdlib.h中的一个宏定义,num和函数返回值都是整型数。 下面是 脚本 内容 #!/bin/bash #guess number game; init() { echo " ################################### " echo " " echo " Guess Number Game " echo " " echo " ################################### " } game() { number=$[$RANDOM%100] while : do read -p "输入你要猜测的数字: " n1 n2=`echo $n1 | sed 's/[0-9]//g'` if [ ! -z $n2 ] then echo "你输入的不是一个数字."

如何用awk或sed递归查找/替换字符串?

天大地大妈咪最大 提交于 2020-05-06 23:22:12
问题: How do I find and replace every occurrence of: 我如何查找和替换每次出现的情况: subdomainA.example.com with 与 subdomainB.example.com in every text file under the /home/www/ directory tree recursively? 在 /home/www/ 目录树下的每个文本文件中递归? 解决方案: 参考一: https://stackoom.com/question/6drn/如何用awk或sed递归查找-替换字符串 参考二: https://oldbug.net/q/6drn/How-to-do-a-recursive-find-replace-of-a-string-with-awk-or-sed 来源: oschina 链接: https://my.oschina.net/stackoom/blog/4268733

Linux基础-IP地址修改,Xshell简易使用,常用yum操作,虚拟机常规操作

烂漫一生 提交于 2020-05-06 07:04:42
1.CentOS 7.5 修改IP ifconfig CentOS 7修改ip的方法: 第一种: nmtui 方向键,Tab,空格,回车 第二种: 修改网卡配置文件 cat /etc/sysconfig/network-scripts/ ls 找到需要配置的网卡 BOOTPROTO = none / static / dhcp # 网卡获取ip地址的方式 none / static : 手动配置IP dhcp : 动态配置IP ONBOOT = yes # 网卡启动状态 yes : 开机启动状态 no : 开机禁用状态 IPADDR = 10.1.0.200 # 配置IP地址 PREFIX = 24 # 子网掩码 GATEWAY = 10.1.0.254 # 配置网关 DNS1 = 114.114.114.114 # 配置DNS,可以写三个 通过sed修改网卡的配置信息 sed 's/IPADDR=10.1.0.100/IPADDR=10.1.0.200/g' /etc/sysconfig/network-scripts/ifconfig-enss3 sed 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifconfig-enss3 sed 's/BOOTPROTO=dhcp/BOOTPROTO=none/g'

Centos 7 kubernetes集群搭建

Deadly 提交于 2020-05-05 21:42:04
一、环境准备    Kubernetes支持在物理服务器或虚拟机中运行,本次使用虚拟机准备测试环境,硬件配置信息如表所示: IP 地址 节点角色 CPU Memory Hostname 磁盘 192.168.56.10 master >=2c >=2G master sda 、 sdb 192.168.56.11 worker >=2c >=2G node1 sda 、 sdb 192.168.56.12 worker >=2c >=2G node1 sda 、 sdb 注:在所有节点上进行如下操作 1、设置主机名hostname,管理节点设置主机名为master # hostnamectl set-hostname master 设置其他节点主机名称时,可将 master 替换为正确的主机名 node1,node2,node3 即可。 2、编辑 /etc/hosts 文件,添加域名分析 cat <<EOF >>/etc/ hosts 192.168 . 56.10 master 192.168 . 56.11 node1 192.168 . 56.12 node2 EOF 3.关闭防火墙、selinux和swap。 依次执行以下操作 # systemctl stop firewalld # systemctl disable firewalld # setenforce 0 #

Linux0.11内核 遇见的问题

若如初见. 提交于 2020-05-05 17:55:12
Linux–“bad interpreter”问题 1、问题原因:在Windows下进行编辑后拷贝到Linux下运行,不同的系统间编码格式造成的(Windows的文件结尾以\r\n来标识,而Linux格式的文件行尾则以\n来标识) 2、问题解决(3种): 1)vi setup.sh进入setup.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 2)直接执行sed -i “s/\r//” setup.sh来转化。 3)直接执行dos2unix setup.sh来转化。 dos2unix setup.sh 或者 busybox dos2unix setup.sh 3、查看文件格式的方法: 1)cat -A 文件名 从显示结果可以判断,dos格式的文件行尾为^M$ 2)vi 文件名 打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix 3)od -t x1 文件名 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式 另外一个问题 fatal error: sys/cdefs.h: No such file or directory `sudo apt-get purge libc6-dev sudo

如何强制Docker进行映像的干净构建

两盒软妹~` 提交于 2020-05-04 20:53:41
问题: I have build a Docker image from a Docker file using the below command. 我已经使用以下命令从Docker文件构建了一个Docker映像。 $ docker build -t u12_core -f u12_core . When I am trying to rebuild it with the same command, it's using the build cache like: 当我尝试使用同一命令重建它时,它正在使用构建缓存,例如: Step 1 : FROM ubuntu:12.04 ---> eb965dfb09d2 Step 2 : MAINTAINER Pavan Gupta <pavan.gupta@gmail.com> ---> Using cache ---> 4354ccf9dcd8 Step 3 : RUN apt-get update ---> Using cache ---> bcbca2fcf204 Step 4 : RUN apt-get install -y openjdk-7-jdk ---> Using cache ---> 103f1a261d44 Step 5 : RUN apt-get install -y openssh-server --->