问题标签 [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.
shell - awk 命令分隔记录并保存为 csv
嗨,我实际上试图管理一个 awk 脚本,该脚本摆弄一个文本文件,其内容如下
等等..实际上是一个巨大的文件..我设法编写的脚本是
此命令将我的文本文件转换为具有记录分隔的 csv 文件.. 但正如您在上面看到的,上述示例中的地址长度是不同的,我得到一个格式不规则的 csv 文件..
所以我现在要做的是更改命令,将公司的 1.title 放在一个单元格中,2.描述部分,如果存在于一个单元格中,如果不存在,则将单元格留空,3.一个单元格中的地址部分,4. 一个单元格中的电话号码 5. 一个单元格中的网站.. 如果任何特定组件不存在,则该单元格应留空..
我是 linux 新手,正在尝试处理一些东西,而且对 shell 和 awk 也很陌生。如果有可能,任何人都可以帮助我...
perl - 使用 sed、awk 或 perl 从行中提取特定模式
sed
如果我需要提取由特定模式包围的模式,如果它存在于一行中,我可以使用它吗?
假设我有一个包含以下几行的文件:
有很多人因为[/fear/]邻居会说什么而不敢自杀。
/*
当我们已经知道答案*/
但希望我们不知道时,我们会寻求建议。
在这两种情况下,我必须在各自的情况下扫描第一个出现的模式,即'[ /
'或' ',并存储以下模式,直到退出模式,即' ]'或' '分别。/*
/
*/
简而言之,我需要fear
和answer
。如果可能,是否可以将其扩展到多行;从某种意义上说,如果退出模式出现在与同一行不同的行中。
欢迎任何形式的建议或算法帮助。提前感谢您的回复
perl - 提取由预定义的多行字符序列包围的部分
希望 AWK 大师可以为我的问题提供解决方案。
我有一个像这样的文件:
我必须使用 AWK 来提取第一个出现的c和 a d之间的模式。从第一个c开始,计数应该保持在c和d的数量上,这样当计数匹配时,第一个c和匹配的d应该被输出到一个文件中,其中包括匹配 d 的行号。
在此特定示例中,匹配发生在第七只狗上,因此输出必须是:
比赛可以超越两条线!输出可以或不能包括c和d。文本中存在包括特殊字符在内的各种字符!为了进行打印,计数必须匹配。
提前感谢您的回复。建议总是受欢迎的。
编辑:只要满足条件并获得出口d的行号,就可以破坏c和d之间模式的捕获:)
perl - grep 正则表达式到 perl 或 awk
我一直在使用 Linux env,最近迁移到了 solaris。不幸的是,我的一个 bash 脚本需要grep
与P
switch [pcre support] 一起使用。由于 Solaris 不支持pcre
grep 选项,我不得不找到另一个解决方案。而且pcregrep
似乎有一个明显的循环错误和 sed
-r
选项不受支持!我希望在solaris上使用perl
ornawk
能解决问题。
我还没有perl
在我的脚本中使用过,也不知道它的语法和标志。
既然是pcre
,我相信perl
脚本编写者可以在几分钟内帮助我。它们应该匹配多行。
awk
就效率或解决方案而言,哪一个是更好的解决perl
方案?
感谢您的回复。
unix - 重定向到目录中的所有文件
使用 awk,如何将数据重定向到目录中的所有文件?
就像,假设我想重定向到 file.txt 我会这样做:
除了目录中的多个文件(实际上是所有文件)之外,我怎样才能实现相同的目标。cirrent 目录中有一些 .txt 文件。所以我想将 abc 重定向到当前目录中扩展名为 .txt 的所有文件。
awk - 根据条件拆分文件
我有一个包含以下数据的文件
我想根据设定值将此文件分成两个(bag1.txt 和 bag2.txt)。
bag1.txt 应该看起来像:
bag2.txt 应该看起来像:
.domain 行对这两个文件都是通用的。
我尝试了下面的命令,但它不起作用。
sed - 如何找到和更换分音符?
我有一个包含一些分音符号的文件,̈
. 我需要用 , 替换它们以\textdiaeresis
在 TeX 中使用。
似乎与其他符号一起使用的常用命令总是导致输出为\\textdiaeresis
or \ extdiaeresis
,后者\t
被解释为“tab”。
我试过这些sed
命令:
我试过这些nawk
命令:
如何用这个 TeX 代码替换分音符?
perl - 如何从重复超过六次的文件中打印行
我有一个包含如下数据的文件。第一个逗号分隔的字段可以重复任意次数,我只想打印该字段的任何值的第六次重复之后的行
例如,有八个字段1111111
作为第一个字段,我只想打印这些记录中的第七个和第八个
输入文件:
输出:
我尝试过的是相对于第一个转置第二个和第三个字段,以便我可以在ornawk
的字段上使用$7
$8
linux - 想要根据同一文件中另一列中的值就地编辑文件(替换列值)
我想根据同一文件中另一列中的值编辑文件(替换列值)。我不想在替换到另一个文件后重定向输出,而是想就地编辑文件。特别需要这个,因为需要编辑的文件将不会被任何程序同时访问,并且必须为此进行就地编辑
我尝试了下面的代码。但这又是逐行写入输入文件
我的示例记录如下所示。在这里,我想对此进行内联编辑。如果第 8 场是 ROBERT,则在第 7 场用 FUDIK 替换 JAMES
我将不胜感激这方面的任何帮助
perl - 用 sed/perl 替换特殊字符时出错
我正在尝试使用 sed/perl 替换一些我遇到错误的特殊字符。
在下面的命令中,我试图替换 SEARCHFIELDAPP、OLD_STRING、NEW_STRING 等的值;
上面的命令在控制台打印时如下图所示。
在上面的命令字符串中,我试图替换几个字符串:
当我这样做时,我得到如下所示的输出:
这里的问题是替换 s|NEW_STRING|mogga&*%^$|; . 我期待NEW_STRING被mogga&*%^$ 取代,但它正在被moggaNEW_STRING*%^$取代。
这里& 被解释为NEW_STRING。当我逃避&时,它工作正常。但是我从我在子脚本中动态使用的父脚本中获取了这个字符串。我正在寻找某种方法来成功替换字符串,而不会转义任何字符。转义将使我用我想避免的转义字符修改传入的字符串。
我通过使用 perl one liner 进行替换来尝试相同的方法。但在这里我也面临着特殊字符的类似问题。
下面是替换后的样子:
我看到字符串OLD_STRING应该被替换为字符串mogga_dev_$%^被替换为mogga_dev_0^。这里$%正在转换为0
在这种情况下,我也可以通过转义有问题的字符来获得期望。
除了转义特殊字符之外,您能否告诉我如何避免这种解释?
谢谢
在威廉的输入之后,我能够在没有错误的情况下实现以下目标:
但是当我在一个文件上执行这个替换时。我没有在文件中看到字符串mogga_dev_!$%^没有被mogga!& %^$@ &^%替换。
由于特殊字符没有转义,我认为没有发生替换。但我不想使用转义来转义特殊字符。你能帮我用其他方法用文件中的特殊字符替换字符串吗?
谢谢