awk相关内容
我正在尝试使用 awk 来获取给定文件绝对路径的文件名. 例如,当给定输入路径 /home/parent/child/filename 我想得到 filename我试过了: awk -F "/" '{print $5}' 输入 效果很好. 但是,我正在硬编码 $5 如果我的输入具有以下结构,这将是不正确的: /home/parent/child1/child2/filename 因此,
..
今天我在网上搜索一个命令来打印一个模式后的下两行,我遇到了一个我无法理解的 awk 命令. $/usr/xpg4/bin/awk '_&&_--;/PATTERN/{_=2}' 输入 谁能解释一下? 解决方案 参见 https://stackoverflow.com/a/17914105/1745001 对于此处重复的答案.
..
当字符串中包含管道符号| 时如何拆分字符串.我想将它们拆分成数组. 我试过了 echo "12:23:11" |awk '{split($0,a,":");打印 a[3] a[2] a[1]}' 哪个工作正常.如果我的字符串类似于 "12|23|11" 那么我如何将它们拆分成一个数组? 解决方案 您是否尝试过: echo "12|23|11" |awk '{split($0,a
..
我有一个超过 40.000 行的文件 (file1),我想提取与 file2 中模式匹配的行(大约 6000 行).我是这样用grep的,但是很慢: grep -f file2 file1 >出去 是否有使用 awk 或 sed 来执行此操作的更快方法? 以下是我的文件的一些摘录: File1: scitn003869.2|scign003869 CGCATGTGTGCATGTA
..
我有一个包含一定数量行的文件.每一行看起来像这样: TF_list_to_test10004/Nus_k0.345_t0.1_e0.1.adj:PKMYT1 我想删除“:"之前的所有字符,以便仅保留作为基因名称的 PKMYT1.由于我不是正则表达式脚本方面的专家,谁能帮助我使用 Unix(sed 或 awk)或 R 来完成此操作? 解决方案 在 R 中有两种方法: foo
..
我将如何在 sed(或任何类似的工具 - 例如 awk)中混合模式和数字范围?我想做的是匹配文件中的某些行,并在继续之前删除接下来的 n 行,我想将其作为管道的一部分. 解决方案 我会尝试一下. 删除一个模式后的5行(包括有模式的那一行): sed -e '/pattern/,+5d' file.txt 删除模式后的 5 行(不包括有模式的行): sed -e '/patter
..
这个问题的目的是为日常问题提供一个答案,这些问题的答案是“你有 DOS 行结尾",所以我们可以简单地将它们关闭为这个问题的重复,而不会重复相同的答案令人作呕em>. 注意:这不是任何现有问题的重复.此问答的目的不仅是提供“运行此工具"的答案,而且是为了解释问题,以便我们可以将任何有相关问题的人指向此处,他们将清楚地解释为什么指向此处以及运行的工具,以便解决他们的问题.我花了几个小时阅读所有现
..
我正在从 Bash 脚本运行 C 程序,并通过名为 time 的命令运行它,该命令会输出一些运行算法的时间统计信息. 如果我要执行命令 time $ALGORITHM $VALUE $FILENAME 它产生输出: real 0m0.435s用户 0m0.430s系统 0m0.003s 取决于算法运行的值 但是,我希望能够做的是取 0.435 并将其分配给一个变量.我已经读过一
..
信不信由你,我找不到这个非常基本的问题的答案. 在 awk 中,如何逐个字符地循环输入字符串?假设我只是想把它们打印出来.有我可以访问的数组吗?或者我需要使用 substr 吗? 基本上,类似于: echo "这里是一个字符串" |awk '{ for(i=0; i
..
我必须在输入文件中每次出现表达式“AAA"后打印 81 行.我该怎么做? 解决方案 以下习语描述了如何选择给定的记录范围要匹配的特定模式: a) 从某种模式打印所有记录: awk '/pattern/{f=1}f' 文件 b) 在某种模式后打印所有记录: awk 'f;/pattern/{f=1}' 文件 c) 在某种模式后打印第 N 条记录: awk 'c&&!--c;/
..
有没有办法使用 ack 作为 grep 中的 -f 选项从另一个文件中获取模式(模式列表)代码>?我看到 ack 中有一个 -f 选项,但它与 grep 中的 -f 不同. 也许一个例子会给你一个更好的主意.假设我有 file1: file1:一个C电子 和文件 2: file2:1乙 23d 45 我想从文件 2 中获取文件 1 中的所有模式以给出: a 135 ack 能做到这一
..
我有一个从别处复制的 C 文件,但它有很多如下注释: int 矩阵[20];/* 生成数据 */for (index = 0 ;index 如何删除/* 和*/ 括起来的所有注释.有时候,评论由 4-5 行组成,我需要删除所有这些行. 基本上,我需要删除 /* 和 */ 之间的所有文本,甚至 \n 也可以介于两者之间.请使用 sed、awk 或 perl 之一帮助我做到这一点.
..
我有一个多行的文件在每一行中有许多列(字段)由空白“"分隔每行的列数不同我想删除前两列怎么办? 解决方案 你可以用cut来做到: cut -d " " -f 3- input_filename >输出文件名 说明: cut:调用剪切命令 -d " ":使用单个空格作为分隔符(cut默认使用TAB) -f:指定要保留的字段 3-:所有以字段3开头的字段 input_file
..
我正在尝试在与 grep 匹配的所有文件中搜索和替换字符串: grep -n 'foo' * 会给我以下形式的输出: [文件名]:[行号]:[文本] 对于 grep 返回的每个文件,我想通过将 foo 替换为 bar 来修改文件. 解决方案 你的意思是在所有与 grep 匹配的文件中搜索并替换一个字符串吗? perl -p -i -e 's/oldstring/newstrin
..
如何在 bash shell 脚本的 perl 命令调用中使用 shell 变量? 我的 shell 脚本中有一个 perl 命令来评估日期 -1. 如何在 perl 命令调用中使用 $myDate? 这是我脚本中的部分: myDate='10/10/2012'Dt=$(perl -e 'use POSIX;print strftime '%m/%d/%y', localtim
..
它们之间的主要区别是什么?以及在哪些典型场景下使用每种语言更好? 解决方案 按出现顺序,语言为sed、awk、perl, python. sed 程序是一个流编辑器,旨在将脚本中的操作应用到输入文件的每一行(或更一般地,应用到指定范围的行).它的语言基于ed,Unix 编辑器,虽然它有条件等,但很难处理复杂的任务.你可以用它创造小奇迹——但代价是你头上的头发.但是,在尝试其职权范围内
..
我有两个文件 (file1.txt & file2.txt ),文件只是示例. 如何合并两个文件,以创建文件 - merge_files.txt 示例 3 我现在在写 ksh 脚本,所以合并可以用 ksh、awk、sed、perl 一个 liner ...等来完成 背景 - 为什么我需要合并文件:我的目标是将旧文件(存在于第一个字段中)重命名为新文件 (存在于第二个字段中) ,
..
我有一个像这样的 CSV 文件 AS2345,ASDF1232, Mr. Plain Example, 110 Binary ave.,Atlantis,RI,12345,(999)123-5555,1.56AS2345,ASDF1232, Mrs. Plain Example, 1121110 三元街110 Binary ave..,Atlantis,RI,12345,(999)123-555
..
我有一个巨大的 CSV 文件,一百万行.我想知道是否有办法将此文件拆分为较小的文件,但在所有文件上保留第一行(CSV 标题). 看起来split 非常快,但也非常有限.您不能像 .csv 这样的文件名添加后缀. split -l11000 products.csv file_ 是否有一种有效的方法可以仅在 bash 中完成此任务?单行命令会很棒. 解决方案 这个问题的答案是是,这
..
我有一个 csv 文件,其中每一行定义给定建筑物中的一个房间.除了房间,每一排都有一个地板区域.我要提取的是所有建筑物的所有楼层. 我的文件看起来像这样... "u_floor","u_room","name"0,"00BDF","机场测试"0,0,"BRICKER HALL, JOHN W "0,3,“BRICKER HALL, JOHN W"0,5,“BRICKER HALL, JOH
..