首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shell脚本对编码和行尾符敏感吗

问: 我正在macOS上制作一个NW.js应用程序,并想通过双击图标在开发模式下运行该应用程序。在第一步中,我试图使我的shell脚本正常工作。...真正让我感到奇怪的是,它仍然运行应用程序(如果我手动执行npm install)…… 由于无法正常工作,并且怀疑文件本身有什么奇怪的地方,我直接在Mac上创建了一个新的文件,这次使用了vim。...我输入了完全相同的指令,然后...现在它工作起来没有任何问题。 用 diff 对比两个文件的差异显示完全没有差异。 有什么区别?是什么导致第一个脚本无法运行?我怎样才能知道? 答: 是的。...Bash脚本对行结束很敏感,无论是在脚本本身还是在它处理的数据中。它们应该有Unix风格的行结束符,即每行以换行符结束(ASCII中的十进制10,十六进制0A)。...: 用Bash变量进行sed替换 带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败 在shell程序里如何从文件中获取第n行

17720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux三剑客之sed

    sed 默认读取整个文件并对其中的每一行进行修改。说白了就是一行一行的操作。我用sed主要就是用里面的替换功能,真的很强大。下面以实例,详细的说一下,先从替换开始,最常用的。...参数: 1 sed -h 2 -n, --quiet, --silent 取消自动打印模式空间 3 -e 脚本, --expression=脚本 添加“脚本”到程序的运行列表 4...-f 脚本文件, --file=脚本文件 添加“脚本文件”到程序的运行列表 5 --follow-symlinks 直接修改文件时跟随软链接 6 -i[扩展名], --in-place[...四:,在第二行,到第八行之间,替换以zhang开头的行,用ying来替换,并显示替换的行 1 # cat test | sed -ne '2,8s/^zhang/ying/gp' 2 yingy:x:...上面的例子意思是在第二行,到第八行之间,替换以zhang开头的行,用ying来替换,在5,到10间,用goodbay来替换dbus,并显示替换的行 1 # cat test | sed -n '2,8s

    84420

    shell_正则_变量_tr_awk_sed_cut(1)

    输入模式: 在命令模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容,只有当到你按下【i, I, o, O, a, A, r, R】等任何一个字母之后才会进入输入模式。...脚本调试 1.命令错误 hostnam :命令继续向下执行 2.语法错误 syntax error :默认不会继续执行下去 脚本调试 bash -n file.sh 来检测脚本中的语法错误 bash...3.若不想用绝对路径执行脚本,可以将脚本添加到PATH中(hash查看) SHELL USER 当前的用户 UID 用户的id HOME...增加两行以上,在第二行后面加入两行字 nl /root/testfile | sed '2a hello \ > redhat' 以行为单位的替换与显示 ....数据的搜寻并替换 . sed 's/要被取代的字符串/新的字符串/g' nl test.sh | sed 's/^/#/g' : 脚本行首添加注释 n1 test.sh

    1.1K20

    bash shell:脚本中修改profile文件更新LD_LIBRARY_PATH的示例

    这时就要用到sed编辑器。sed编辑器被称作流编辑器(stream editor),跟普通交互式文件编辑器相反。在交互式编辑器中(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。...于是我们可以利用sed编辑器在安装脚本实现对profile文件的修改。...另外还要写一个卸载脚本,在删除安装目录后,同时将profile中的LD_LIBRARY_PATH变量也同步修改。...,在文件末尾添加export语句INSTALL.sh # 定义安装目录位置的变量 cassdk_path=/home/gdface/cassdk # 定义要在profile中搜索的行 new_export...LD_LIBRARY_PATH=$cassdk_path:\$LD_LIBRARY_PATH echo defined LD_LIBRARY_PATH variable # 直接在profile末尾添加新行

    3.1K20

    软件测试测试开发|Linux sed命令详解

    sed命令语法基本语法:sed [选项] '动作' 文件名常用参数 -n, --quiet, --silent 取消自动打印模式空间 -e 脚本, --expression=脚本 添加“脚本”...到程序的运行列表 -f 脚本文件, --file=脚本文件 添加“脚本文件”到程序的运行列表 --follow-symlinks 直接修改文件时跟随软链接 -i[扩展名], --in-place...-d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚; -i ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); -p ∶列印,亦即将某个选择的资料印出。...如查看以root开头的行$ sed -n '/^root/ p' passwdroot:x:0:0:root:/root:/bin/bash忽略大小写,对含有root字符的行打印出来$ sed -n '...字符串的行$ sed -n '\%/bin/bash% p' passwdroot:x:0:0:root:/root:/bin/bashmuller:x:1000:1000:muller,,,:/home

    16810

    shell(一)

    图形界面shell就是 GUI shell,而命令行式shell在Windows中为 cmd.exe命令提示字符、在Linux中则是 bash等等。...# 我是单行注释 注意:首行指定脚本解释器的时候,不是注释。 多行注释:将内容放在 :<<!和 !之间。 :<<! 这是多行注释 这个也是注释 这个还是注释 !.../bin/bash # 获取脚本的名称 echo "我脚本的名称是:$0" echo "我脚本执行的进程号的是:$$" # 获取当前脚本传入的参数数量 echo "当前脚本传入的参数数量是: $#" #...bash test_shell.sh 1 2 3 name 执行结果: 我脚本的名称是:test_shell.sh 我脚本执行的进程号的是:19755 当前脚本传入的参数数量是: 4 第一个位置的参数是...:行3: dsfsafsafdsa: 未找到命令 可以看到脚本中第2行正确执行。

    3.4K50

    精简运维流程:grep、awk、sed三剑客的实用脚本

    我这里只挑常用的参数,更详细的参数,大家可以自行搜索查阅。 grep grep 用于搜索文件中匹配特定模式的行。...-o:仅输出文件中匹配到的部分。 -A n:打印匹配行及其后n行。 -B n:打印匹配行及其前n行。 -C n:打印匹配行及其前后各n行。 自动化脚本示例: #!...n~m:每m行匹配一次,从第n行开始。 &:在替换字符串中引用匹配的部分。 -n 与 p 结合使用:仅打印那些发生替换的行。 自动化脚本案例: #!.../bin/bash # 监控日志文件的增长,并为新的日志条目添加时间戳和格式化输出 tail -Fn0 /var/log/application.log | \ while read line ; do...$log_file 在使用这些脚本之前,应该测试和验证脚本的正确性,以避免在生产环境中出现问题。

    29710

    shell脚本–sed的用法

    大家好,又见面了,我是你们的朋友全栈君。 sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。...=:用来打印被匹配的行的行号 n:读取下一行,遇到n时会自动跳入下一行 r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件 2.sed命令实例: 示例1:向文件中添加或插入行 sed...‘3ahello’ 1.txt #向第三行后面添加hello,3表示行号 sed ‘/123/ahello’ 1.txt #向内容123后面添加hello,如果文件中有多行包括123,则每一行后面都会添加...sed ‘$ahello’ 1.txt #在最后一行添加hello sed ‘3ihello’ 1.txt #在第三行之前插入hello sed ‘/123/ihello’ 1....中 sed -n ‘/xyz/,+2w 2.txt’ 1.txt #将1.txt中从匹配xyz的行及其后2行的内容,写入到2.txt中 示例9:sed 在shell脚本中的使用

    3.9K20

    linux中最为常用的三大文本(grep,sed,awk)处理工具

    处理时,把当前处理的行存储在临时缓冲区中,成为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。...5.2 动作/脚本命令说明: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!...sed 123456789 /aaa/bbb/ccc 6.3 sed a 和 i 添加和插入 a 命令表示在指定行的后面附加一行,i 命令表示在指定行的前面插入一行, 它们的基本格式完全相同 格式为...,,,:/home/linuxtechi:/bin/bash root@Linux-world:~# Bash脚本将美元($)符号视作特殊字符,用于指定一行或者一个单词的结尾。...“grep_pattern”,我想文件中输入的如下内容。

    6.1K10

    Linux的sed命令

    Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。...实例在testfile文件的第四行后添加一行,并将结果输出到标准输出,在命令行提示符下输入如下命令:sed -e 4a\newLine testfile 首先查看testfile中的内容如下:$ cat...Linux test 使用sed命令后,输出结果如下:$ sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串 HELLO LINUX!...(后面省略).....每一行之间都必须要以反斜杠『 \ 』来进行新行的添加喔!所以,上面的例子中,我们可以发现在第一行的最后面就有 \ 存在。......下面忽略#第一行的匹配root已经删除了数据的搜寻并执行命令搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell

    4.1K10

    Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

    c\ 把选定的行改为新的文本。 d 删除,删除选择的行。 D 删除模板块的第一行。 s 替换指定字符,字符间可用/或@或#隔开 h 拷贝模板块的内容到内存中的缓冲区。...前面可加数字,指定打印第几行 P(大写) 打印模板块的第一行。 q 退出Sed。 b lable 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。 r file 从file中读行。...x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行 3.7 脚本地址定界 / 在sed中作为定界符使用,也可以使用任意的定界符:| / 定界符出现在样式内部时...ls | sed 's/$/666_&/g' #表示给当前文件下的文件名统一添加后缀 $ ls | sed 's/\w\+/666_&/g' #表明给所有的单词添加前缀 $ ls | sed...#在123.txt的第8行到10行替换为一行hello 一行内执行多条命令 需用到选项参数-e/--expression= 以选项中的指定的脚本来处理输入的文本文件

    9.3K21

    《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk

    sed编辑器会执行下列操作: 1)一次从输入中读取一行数据 2)根据所提供的编辑命令匹配数据 3)按照命令修改流中的数据 4)将新的数据输出到STDOUT sed将所有命令与一行数据匹配完毕后,就读取下一行重复这个过程...中指定的命令添加到已有的命令中 -f file       | 在处理输入时,将file中指定的命令添加到已有的命令中 -n            | 不产生命令输出,使用printf命令来完成输出 一般是单个命令...在处理数据前运行脚本 gawk还允许指定程序脚本何时运行。 默认gawk会从输入中读取一行文本,然后针对该行的数据执行程序脚本。 有时候会需要在处理数据前运行脚本,BEGIN就是用来做这个的。...sed编辑器的正常输出是在STDOUT中,而只有那些包含匹配模式的行才会保存在指定的输出文件中。...sed编辑器在文本模式中采用了一种称为正则表达式的特性来帮助你创建匹配效果更好的模式。就是上面的 pattern。 3. 命令组合 还可以控制多条命令在指定行中运行。

    1.9K50

    Linux中sed工具的使用

    处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。...注:sed命令不对原文件进行改变,除非使用 -i 参数;sed命令是一行一行处理的 sed命令的使用 sed 参数 命令 文件 参数 -f 脚本文件 以选项中指定的脚本文件来处理输入的文本文件...) 在所有行的行首和行尾添加 sed 's/^/HEAD/g' test #在test文件中所有行的行首加HEAD sed 's/$/TAIL/g' test #在test文件中所有行的行尾加...TAIL 在指定行的行首和行尾添加 sed '5s/^/HEAD/' test #在test文件中第5行的行首添加HEAD sed '5s/$/TAIL/' test #在test...文件中第5行的行尾添加TAIL 过滤指定行,然后在过滤行的行首和行尾添加 sed '/^ONBOOT/s/^/HEAD/' ifcfg #在以ONBOOT开头的行首加 HEAD sed '/^ONBOOT

    2.3K10

    编写Shell脚本的最佳实践

    反正我习惯用hard tab。 对于if和for语句之类的,我们最好不要把then,do这些关键字单独写一行,这样看上去比较丑。。。...否则,在Linux下运行的时候就会识别到开头的三个字符,从而报一些无法识别命令的错。 当然,对于跨平台写脚本还有一个比较常见的问题就是换行符不同。windows默认是\r\n而unix下是\n。...权限记得加 这一点虽然很小,但是我个人却经常忘记,不加执行权限会导致无法直接执行,有点讨厌。。。 日志和回显 日志的重要性不必多说,能够方便我们回头纠错,在大型的项目里是非常重要的。...有时候为了提高用户体验,我们会在回显中添加一些特效,比如颜色啊,闪烁啊之类的,具体可以参考ANSI/VT100 Control sequences这篇文章的介绍。...比如下面的两个sed命令: sed -n '1p' file sed -n '1p;1q' file 他们的作用一样,都是获取文件的第一行。但是第一条命令会读取整个文件,而第二条命令只读取第一行。

    86210

    awk、sed、grep

    sed 文件处理命令 包括增加、删除、打印、替换行的内容 a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1...应用案例 案例一 sed -e 4a\newline testfile #使用sed 在第四行后添加新字符串 nl /etc/passwd | sed '2a drink tea' ## 第二行末尾添加内容...nl /etc/passwd | sed '2i drink tea' # 第二行前添加内容 nl /etc/passwd | sed '2a Drink tea or ...... drink beer...\ # 在第二行后面加入两行字,'\'符号 案例二undefinednl /etc/passwd | sed '2,5d' 案例三undefined将第2-5行的内容取代成为『No 2-5 number...#查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为 grep –e "正则表达式" 文件名 grep 除了可以查找单个文件中匹配的模式,也可以在目录中包含特定字符的文件查找匹配模式的行

    1.3K30

    提高Linux工作效率的十大bash技巧

    希望我的这些追求最大化命令行效率的努力成果也能给其他喜欢使用bash的朋友们带来一些帮助。 我喜欢钻研bash环境。很多时候,在使用bash编程中,有些问题一遍又一遍的重复遇到。...每次我都需要重新思考这些问题的解决方法。直到有一天我无法忍受,于是坐下来,编写一个通用的函数,放入我的.bashrc文件中,部署到电脑上。...下面就是如何使用sed往一个文件顶部添加一行的方法: sed -i '1s/^/line to insert\n/' path/to/file/you/want/to/change.txt 技巧二、用命令行往配置文件里插入多行文本...-type f -name '*.txt' -exec sed -i '' s/this/that/g {} + 使用了一段时间后,我总结写出了一个函数,添加入了 .bashrc ,就像下面这样: function...下面是我的配置文件里脚本,但我想上面的链接能提供你更多技巧: 技巧七、从格式化输出里提取一列(我最常使用的awk技巧) 我几乎天天都会使用它。真的。

    60110

    shell脚本快速入门之-----正则三剑客之二sed用法大全!!!

    一、sed 工具简介 1、sed工具工作原理 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等)...2、sed 命令选项主要包含以下几种 -e 或–expression=:表示用指定命令或者脚本来处理输入的文本文件。 -f 或–file=:表示用指定的脚本文件来处理输入的文本文件。...//将包含the 的行另存为文件 out.file sed '/the/r /etc/hostname' test.txt //将文件/etc/hostname 的内容添加到包含 the 的每行以后...sed '3aNew' test.txt //在第 3 行后插入一个新行,内容为New sed '/the/aNew' test.txt //在包含the 的每行后插入一个新行,内容为 New sed...在w模式下,可以直接写入文件,这是追加的过程,不会覆盖原文 三、sed中-n和-p以及不加参数 不加参数默认输出全部 包括匹配到的参数 -n选项:只显示匹配处理的行(否则会输出所有)(也就是关闭默认的输出

    1.6K31

    大数据学习之_02_Shell学习

    3、第二个Shell脚本:多命令处理 (1)需求:在/home/jack/目录下创建一个banzhang.txt,在banzhang.txt文件中增加“I love cls”。...(3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 (4)变量的值如果有空格,需要使用双引号或单引号括起来。...3、案例实操   (1)定义变量A   (2)给变量A重新赋值   (3)撤销变量A   (4)声明静态的变量C=4,不能unset   (5)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算...10.2 sed sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。...(3)只显示/etc/passwd的第一列和第七列,以逗号分割,且在所有行前面添加列名user,shell,在最后一行添加"lxy,/bin/zuimei"。

    1.5K20
    领券