标签: awk

如何在匹配后的下一行显示?

grep -A1 'blah' logfile
Run Code Online (Sandbox Code Playgroud)

感谢这个命令对于每个包含'blah'的行,我得到包含'blah'的行的输出以及日志文件中的下一行.它可能是一个简单的但我无法找到一种方法来省略具有'blah'的行并且在输出中显示下一行.

awk grep sed

204
推荐指数
8
解决办法
22万
查看次数

AWK多个分隔符

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

/logs/tc0001/tomcat/tomcat7.1/conf/catalina.properties:app.env.server.name = demo.example.com
/logs/tc0001/tomcat/tomcat7.2/conf/catalina.properties:app.env.server.name = quest.example.com
/logs/tc0001/tomcat/tomcat7.5/conf/catalina.properties:app.env.server.name = www.example.com
Run Code Online (Sandbox Code Playgroud)

在上面的输出中,我想提取3个字段(第2,4和最后一个*.example.com).我得到以下输出:

cat file | awk -F'/' '{print $3 "\t" $5}'
tc0001   tomcat7.1
tc0001   tomcat7.2
tc0001   tomcat7.5
Run Code Online (Sandbox Code Playgroud)

如何提取具有以下域名的最后一个字段'='?我如何使用multiple delimiter提取字段?

awk command-line text-processing

185
推荐指数
5
解决办法
34万
查看次数

如何快速汇总文件中的所有数字?

我有一个包含数千个数字的文件,每个数字都在它自己的行上:

34
42
11
6
2
99
...
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个脚本,它将打印文件中所有数字的总和.我有一个解决方案,但效率不高.(运行需要几分钟.)我正在寻找更有效的解决方案.有什么建议?

linux bash shell perl awk

178
推荐指数
14
解决办法
14万
查看次数

是否有一个Unix实用程序来为stdin添加时间戳?

我最后在Python中为此编写了一个快速的小脚本,但我想知道是否有一个实用程序可以提供文本,其中每个行前面都有一些文本 - 在我的特定情况下,是一个时间戳.理想情况下,使用方式如下:

cat somefile.txt | prepend-timestamp
Run Code Online (Sandbox Code Playgroud)

(在你回答sed之前,我试过这个:

cat somefile.txt | sed "s/^/`date`/"
Run Code Online (Sandbox Code Playgroud)

但是,这只会在执行sed时评估date命令,因此每行都会错误地添加相同的时间戳.)

unix shell awk

166
推荐指数
8
解决办法
7万
查看次数

在awk中打​​印第二个最后一列/字段

我想在awk中打​​印第二个最后一列或字段.字段数是可变的.我知道我应该可以使用,$NF但不知道如何使用它.

这似乎不起作用:

awk ' { print ( $NF-- )  } '
Run Code Online (Sandbox Code Playgroud)

awk gawk

157
推荐指数
6
解决办法
13万
查看次数

没有打印换行符的awk

我希望在每次迭代中并排打印变量sum/NR.我们如何避免awk在每次迭代中打印换行符?在我的代码中,默认情况下会在每次迭代中打印换行符

for file in cg_c ep_c is_c tau xhpl
printf "\n $file" >> to-plot.xls
    for f in 2.54 1.60 800 
        awk '{sum+=$3}; END  {print  sum/NR}' ${file}_${f}_v1.xls >> to-plot-p.xls
    done
done
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像这样

cg_c ans1  ans2  ans3  
ep_c ans1  ans2  ans3 
is_c ans1  ans2  ans3
tau  ans1  ans2  ans3 
xhpl ans1  ans2  ans3
Run Code Online (Sandbox Code Playgroud)

我目前的出局是这样的

**cg_c**
ans1
ans2
ans3
**ep_c**
ans1
ans2
ans3
**is_c**
ans1
ans2
ans3
**tau**
ans1
ans2
ans3
**xhpl**
ans1
ans2
ans3
Run Code Online (Sandbox Code Playgroud)

scripting awk newline

155
推荐指数
4
解决办法
16万
查看次数

如果换行符是文件中的最后一个字符,如何删除换行符?

我有一些文件,如果它是文件中的最后一个字符,我想删除最后一个换行符. od -c告诉我,我运行的命令确实用一个尾随的新行写了一个文件:

0013600   n   t  >  \n
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些与sed的技巧,但我能想到的最好的不是诀窍:

sed -e '$s/\(.*\)\n$/\1/' abc
Run Code Online (Sandbox Code Playgroud)

任何想法如何做到这一点?

linux shell perl awk sed

154
推荐指数
10
解决办法
10万
查看次数

bash:获得第n列输出的最短路径

假设您在工作日期间反复遇到bash中某些命令的以下形式的列化输出(在我的情况下,svn st在我的Rails工作目录中执行):

?       changes.patch
M       app/models/superman.rb
A       app/models/superwoman.rb
Run Code Online (Sandbox Code Playgroud)

为了使用命令的输出 - 在这种情况下是文件名 - 需要某种解析,以便第二列可以用作下一个命令的输入.

我一直在做的是用来awk获取第二列,例如当我想删除所有文件(不是那个典型的用例:)时,我会这样做:

svn st | awk '{print $2}' | xargs rm
Run Code Online (Sandbox Code Playgroud)

由于我输入了很多,一个自然的问题是:在bash中有没有更短(更酷)的方法来实现这一点?

注意:我所要求的实际上是一个shell命令问题,即使我的具体示例是在我的svn工作流程上.如果您认为工作流程很愚蠢并建议另一种方法,我可能不会投票给您,但其他人可能会,因为这里的问题实际上是如何以最短的方式获得bash中的第n列命令输出.谢谢 :)

bash awk

148
推荐指数
6
解决办法
22万
查看次数

如何在awk中将分隔的字符串拆分为数组?

如何在字符串中包含管道符号时拆分|它.我想将它们拆分为数组.

我试过了

echo "12:23:11" | awk '{split($0,a,":"); print a[3] a[2] a[1]}'
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.如果我的字符串是那样的"12|23|11"话我怎么把它们分成一个数组呢?

unix string awk split

141
推荐指数
8
解决办法
39万
查看次数

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

我有一个文本文件,格式如下.第一行是"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
Run Code Online (Sandbox Code Playgroud)

我需要与键相同的行中的值.所以输出应该是这样的......

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
Run Code Online (Sandbox Code Playgroud)

如果我可以像$或使用一些分隔符会更好,:

KEY 4048:1736 string , 3
Run Code Online (Sandbox Code Playgroud)

如何将两行合并为一行?

bash awk grep sed

137
推荐指数
12
解决办法
21万
查看次数

标签 统计

awk ×10

bash ×3

sed ×3

shell ×3

grep ×2

linux ×2

perl ×2

unix ×2

command-line ×1

gawk ×1

newline ×1

scripting ×1

split ×1

string ×1

text-processing ×1