问题标签 [nawk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2424 浏览

shell - awk 命令分隔记录并保存为 csv

嗨,我实际上试图管理一个 awk 脚本,该脚本摆弄一个文本文件,其内容如下

等等..实际上是一个巨大的文件..我设法编写的脚本是

此命令将我的文本文件转换为具有记录分隔的 csv 文件.. 但正如您在上面看到的,上述示例中的地址长度是不同的,我得到一个格式不规则的 csv 文件..

所以我现在要做的是更改命令,将公司的 1.title 放在一个单元格中,2.描述部分,如果存在于一个单元格中,如果不存在,则将单元格留空,3.一个单元格中的地址部分,4. 一个单元格中的电话号码 5. 一个单元格中的网站.. 如果任何特定组件不存在,则该单元格应留空..

我是 linux 新手,正在尝试处理一些东西,而且对 shell 和 awk 也很陌生。如果有可能,任何人都可以帮助我...

0 投票
3 回答
2388 浏览

perl - 使用 sed、awk 或 perl 从行中提取特定模式

sed如果我需要提取由特定模式包围的模式,如果它存在于一行中,我可以使用它吗?

假设我有一个包含以下几行的文件:

有很多人因为[/fear/]邻居会说什么而不敢自杀。

/*当我们已经知道答案*/但希望我们不知道时,我们会寻求建议。

在这两种情况下,我必须在各自的情况下扫描第一个出现的模式,即'[ /'或' ',并存储以下模式,直到退出模式,即' ]'或' '分别。/*/*/

简而言之,我需要fearanswer。如果可能,是否可以将其扩展到多行;从某种意义上说,如果退出模式出现在与同一行不同的行中。

欢迎任何形式的建议或算法帮助。提前感谢您的回复

0 投票
2 回答
133 浏览

perl - 提取由预定义的多行字符序列包围的部分

希望 AWK 大师可以为我的问题提供解决方案。

我有一个像这样的文件:

我必须使用 AWK 来提取第一个出现的c和 a d之间的模式。从第一个c开始,计数应该保持在cd的数量上,这样当计数匹配时,第一个c和匹配的d应该被输出到一个文件中,其中包括匹配 d 的行

在此特定示例中,匹配发生在第七只狗上,因此输出必须是:

比赛可以超越两条线!输出可以或不能包括cd。文本中存在包括特殊字符在内的各种字符!为了进行打印,计数必须匹配。

提前感谢您的回复。建议总是受欢迎的。

编辑:只要满足条件并获得出口d的行号,就可以破坏cd之间模式的捕获:)

0 投票
2 回答
1930 浏览

perl - grep 正则表达式到 perl 或 awk

我一直在使用 Linux env,最近迁移到了 solaris。不幸的是,我的一个 bash 脚本需要grepPswitch [pcre support] 一起使用。由于 Solaris 不支持pcregrep 选项,我不得不找到另一个解决方案。而且pcregrep似乎有一个明显的循环错误和 sed -r选项不受支持!我希望在solaris上使用perlornawk能解决问题。

我还没有perl在我的脚本中使用过,也不知道它的语法和标志。

既然是pcre,我相信perl脚本编写者可以在几分钟内帮助我。它们应该匹配多行。

awk 就效率或解决方案而言,哪一个是更好的解决perl方案?

感谢您的回复。

0 投票
3 回答
178 浏览

unix - 重定向到目录中的所有文件

使用 awk,如何将数据重定向到目录中的所有文件?

就像,假设我想重定向到 file.txt 我会这样做:

除了目录中的多个文件(实际上是所有文件)之外,我怎样才能实现相同的目标。cirrent 目录中有一些 .txt 文件。所以我想将 abc 重定向到当前目录中扩展名为 .txt 的所有文件。

0 投票
1 回答
272 浏览

awk - 根据条件拆分文件

我有一个包含以下数据的文件

我想根据设定值将此文件分成两个(bag1.txt 和 bag2.txt)。

bag1.txt 应该看起来像:

bag2.txt 应该看起来像:

.domain 行对这两个文件都是通用的。

我尝试了下面的命令,但它不起作用。

0 投票
1 回答
261 浏览

sed - 如何找到和更换分音符?

我有一个包含一些分音符号的文件,̈. 我需要用 , 替换它们以\textdiaeresis在 TeX 中使用。

似乎与其他符号一起使用的常用命令总是导致输出为\\textdiaeresisor \ extdiaeresis,后者\t被解释为“tab”。

我试过这些sed命令:

我试过这些nawk命令:

如何用这个 TeX 代码替换分音符?

0 投票
5 回答
696 浏览

perl - 如何从重复超过六次的文件中打印行

我有一个包含如下数据的文件。第一个逗号分隔的字段可以重复任意次数,我只想打印该字段的任何值的第六次重复之后的行

例如,有八个字段1111111作为第一个字段,我只想打印这些记录中的第七个和第八个

输入文件:

输出:

我尝试过的是相对于第一个转置第二个和第三个字段,以便我可以在ornawk的字段上使用$7$8

0 投票
1 回答
186 浏览

linux - 想要根据同一文件中另一列中的值就地编辑文件(替换列值)

我想根据同一文件中另一列中的值编辑文件(替换列值)。我不想在替换到另一个文件后重定向输出,而是想就地编辑文件。特别需要这个,因为需要编辑的文件将不会被任何程序同时访问,并且必须为此进行就地编辑

我尝试了下面的代码。但这又是逐行写入输入文件

我的示例记录如下所示。在这里,我想对此进行内联编辑。如果第 8 场是 ROBERT,则在第 7 场用 FUDIK 替换 JAMES

我将不胜感激这方面的任何帮助

0 投票
1 回答
708 浏览

perl - 用 sed/perl 替换特殊字符时出错

我正在尝试使用 sed/perl 替换一些我遇到错误的特殊字符。

在下面的命令中,我试图替换 SEARCHFIELDAPP、OLD_STRING、NEW_STRING 等的值;

上面的命令在控制台打印时如下图所示。

在上面的命令字符串中,我试图替换几个字符串:

当我这样做时,我得到如下所示的输出:

这里的问题是替换 s|NEW_STRING|mogga&*%^$|; . 我期待NEW_STRINGmogga&*%^$ 取代,但它正在被moggaNEW_STRING*%^$取代。

这里& 被解释为NEW_STRING。当我逃避&时,它工作正常。但是我从我在子脚本中动态使用的父脚本中获取了这个字符串。我正在寻找某种方法来成功替换字符串,而不会转义任何字符。转义将使我用我想避免的转义字符修改传入的字符串。

我通过使用 perl one liner 进行替换来尝试相同的方法。但在这里我也面临着特殊字符的类似问题。

下面是替换后的样子:

我看到字符串OLD_STRING应该被替换为字符串mogga_dev_$%^被替换为mogga_dev_0^。这里$%正在转换为0

在这种情况下,我也可以通过转义有问题的字符来获得期望。

除了转义特殊字符之外,您能否告诉我如何避免这种解释?

谢谢


在威廉的输入之后,我能够在没有错误的情况下实现以下目标:

但是当我在一个文件上执行这个替换时。我没有在文件中看到字符串mogga_dev_!$%^没有被mogga!& %^$@ &^%替换。

由于特殊字符没有转义,我认为没有发生替换。但我不想使用转义来转义特殊字符。你能帮我用其他方法用文件中的特殊字符替换字符串吗?

谢谢