Tag: sed

如何从Unix上的文本文件中提取预定范围的行?

我有一个〜23000行的SQL转储,包含几个数据库值的数据。 我需要提取该文件的某个部分(即单个数据库的数据),并将其放在一个新文件中。 我知道我想要的数据的开始和结束行号。 有没有人知道一个Unix命令(或一系列命令)提取行16224和16482之间的文件中的所有行,然后redirect到一个新的文件?

RE错误:Mac OS X上的非法字节序列

我试图在Mac OS X上replaceMakefile中的string来交叉编译到iOS。 该stringembedded了双引号。 该命令是: sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure 而错误是: sed: RE error: illegal byte sequence 我已经尝试了逃避双引号,逗号,破折号和冒号,没有喜悦。 例如: sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure 我有一个时间debugging这个问题。 有谁知道如何让sed打印非法字节序列的位置? 还是有人知道什么是非法的字节序列?

在Mac(BSD)和Linux上均可使用的sed in-place标志

是否有没有备份的sed todo in-place编辑的调用,可以在Linux和Mac上使用? 尽pipeOS X附带的BSD sed似乎需要sed -i '' … ,但是GNU sed Linux发行版通常将解释为空input文件名(而不是备份扩展名),并且需要sed -i … 是否有任何命令行语法,这两种口味的作品,所以我可以在两个系统上使用相同的脚本?

如何用sedreplace包含斜杠的string?

我有一个Visual Studio项目,这是在本地开发的。 代码文件必须部署到远程服务器。 唯一的问题是URLsthey包含哪些是硬编码的。 项目包含URLS,例如?page = 1 。 要使链接在服务器上有效,它必须是/ page / one 。 我决定在部署之前用sedreplace我的代码文件中的所有URL,但是我被困在了斜杠上。 我知道这不是一个漂亮的解决scheme,但它很简单会节省我很多时间。 我要replace的string总数less于10个。必须检查的文件总数是〜30个。 描述我的情况的例子如下: 我正在使用的命令: sed -f replace.txt < a.txt > b.txt 包含所有string的replace.txt: s/?page=one&/pageone/g s/?page=two&/pagetwo/g s/?page=three&/pagethree/g A.TXT: ?page=one& ?page=two& ?page=three& 我运行我的sed命令后b.txt的内容: pageone pagetwo pagethree 我想要b.txt包含: /page/one /page/two /page/three

Bash工具从文件中获得第n行

有没有一个“规范”的方式呢? 我一直在使用head -n | tail -1 head -n | tail -1这个技巧,但我一直想知道是否有一个Bash工具,专门从文件中提取一行(或一系列的行)。 “规范”是指一个主要function就是这样的程序。

如何从命令行将每两行合并成一行?

我有一个以下格式的文本文件。 第一行是“KEY”,第二行是“VALUE”。 KEY 4048:1736 string 3 KEY 0:1772 string 1 KEY 4192:1349 string 1 KEY 7329:2407 string 2 KEY 0:1774 string 1 我需要和键一样的值。 所以输出应该是这样的… KEY 4048:1736 string 3 KEY 0:1772 string 1 KEY 4192:1349 string 1 KEY 7329:2407 string 2 KEY 0:1774 string 1 如果我可以使用一些分隔符如$或KEY 4048:1736string3,会更好 如何将两行合并成一行?

如何使用sed来replace文件中的第一个事件?

我想在任何现有的#includes之前用额外的include指令更新大量的C ++源文件。 对于这种任务,我通常使用sed的一个小bash脚本来重写这个文件。 如何让sedreplace文件中第一次出现的string,而不是replace每一个出现的地方? 如果我使用 sed s/#include/#include "newfile.h"\n#include/ 它将取代所有#includes。 实现同样目标的替代build议也是受欢迎的。

有没有像西医喜欢的工具为cmd.exe

我想以编程方式使用Windows命令行( cmd.exe )编辑文件内容。 在* nix中有这个任务的sed 。 有没有什么有用的相当于Windows? 编辑:我正在寻找本地命令行解决scheme。

sed不给我正确的替代操作换Mac的换行 – GNU sed和BSD / OSX sed之间的差异

我使用这个引用: sed help:匹配和replace文字“\ n”(不是换行符) 我有一个文件“test1.txt”,其中包含一个stringhello \ ngoodbye 我用这个命令search并用实际换行符replace“\ n”: sed -i '' 's/\\n/\n/g' test1.txt 但结果是: hellongbybye 。 它只是将“\ n”replace为“n”而不是实际的新行。 这和/ t的情况一样,它会留下“t”而不是标签。 ''是MAC中的未定义错误: http : //mpdaugherty.wordpress.com/2010/05/27/difference-with-sed-in-place-editing-on-mac-os-x-vs-linux / 更新 : 我已经尝试了@ hek2mgl提示的两个命令: sed -i 's/\\n/\n/g' test.txt # Or: sed -i'' 's/\\n/\n/g' test.txt 虽然他们可能与Linux操作系统,MAC操作系统,我得到了以下错误: sed: 1: "test1.txt": undefined label 'est1.txt' 不知道为什么我不能得到这个工作。 提前致谢。

awk / sed:如何做一个string的recursion查找/replace?

如何查找和replace以下每个事件: subdomainA.example.com 同 subdomainB.example.com 在/home/www/目录树(recursion查找/replace)下的每个文本文件中。