标签: awk

使用sed或awk在特定行号处插入一行

我有一个脚本文件,我需要用另一个脚本修改,以在第8行插入文本.

要插入的字符串:Project_Name=sowstest,到一个名为的文件中start.

我试图使用awk和sed,但我的命令变得乱码.

awk sed

133
推荐指数
8
解决办法
18万
查看次数

如何从命令输出中获取第二列?

我的命令输出类似于:

1540 "A B"
   6 "C"
 119 "D"
Run Code Online (Sandbox Code Playgroud)

第一列始终是数字,后跟空格,然后是双引号字符串.

我的目的是仅获得第二列,例如:

"A B"
"C"
"D"
Run Code Online (Sandbox Code Playgroud)

我打算用它<some_command> | awk '{print $2}'来完成这个.但问题是,第二列中的某些值包含空格,这恰好是分隔awk字段的默认分隔符.因此,输出搞砸了:

"A
"C"
"D"
Run Code Online (Sandbox Code Playgroud)

如何干净地获得第二列的值(带配对的引号)?

shell awk ksh

131
推荐指数
6
解决办法
29万
查看次数

按行长度(包括空格)对文本文件进行排序

我有一个看起来像这样的CSV文件

AS2345,ASDF1232, Mr. Plain Example, 110 Binary ave.,Atlantis,RI,12345,(999)123-5555,1.56
AS2345,ASDF1232, Mrs. Plain Example, 1121110 Ternary st.                                        110 Binary ave..,Atlantis,RI,12345,(999)123-5555,1.56
AS2345,ASDF1232, Mr. Plain Example, 110 Binary ave.,Liberty City,RI,12345,(999)123-5555,1.56
AS2345,ASDF1232, Mr. Plain Example, 110 Ternary ave.,Some City,RI,12345,(999)123-5555,1.56

我需要按行长度排序,包括空格.以下命令不包含空格,有没有办法修改它以便它对我有用?

cat $@ | awk '{ print length, $0 }' | sort -n | awk '{$1=""; print $0}'
Run Code Online (Sandbox Code Playgroud)

sorting bash awk text

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

grep,awk和sed有什么区别?

可能重复:
Perl,Python,AWK和sed有什么区别?
sed和awk有什么区别?

也许不是一个很具体的问题,但我感到困惑之间的差异grep,awksed在他们的Unix/Linux系统管理和文本处理的作用方面.

linux bash awk grep sed

121
推荐指数
3
解决办法
12万
查看次数

awk保存修改到位

我正在学习awk,我想知道是否有一个选项可以将更改写入文件,类似于sed我将使用-i选项保存对文件的修改.

我明白我可以使用重定向来编写更改.但是有没有选择awk呢?

unix linux awk

120
推荐指数
6
解决办法
8万
查看次数

如何在Unix中删除文件中的重复行?

有没有办法在Unix中删除文件中的重复行?

我可以使用sort -uuniq命令,但我想使用sedawk.那可能吗?

unix shell scripting awk sed

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

如何使用shebang(即#!)为awk使用多个参数?

我想用shebang 执行一个gawk脚本--re-interval."幼稚"的方法

#!/usr/bin/gawk --re-interval -f
... awk script goes here
Run Code Online (Sandbox Code Playgroud)

不起作用,因为gawk是用第一个参数调用的"--re-interval -f"(不是在空白处分开),它不明白.有解决方法吗?

当然你可以不直接调用gawk,而是将它包装成一个分割第一个参数的shell脚本,或者创建一个shell脚本,然后调用gawk并将脚本放到另一个文件中,但我想知道是否有某种方法可以做这在一个文件中.

shebang行的行为因系统而异 - 至少在Cygwin中它不会通过空格分割参数.我只关心如何在一个行为类似的系统上做到这一点; 该脚本不是便携式的.

unix shell awk shebang gawk

114
推荐指数
5
解决办法
3万
查看次数

如何选择两个标记图案之间的线条,这些线条可能会出现awk/sed多次

使用awksed如何选择两种不同标记图案之间的线条?可能有多个标有这些图案的部分.

例如:假设文件包含:

abc
def1
ghi1
jkl1
mno
abc
def2
ghi2
jkl2
mno
pqr
stu
Run Code Online (Sandbox Code Playgroud)

并且起始模式是abc和结束模式是mno So,我需要输出为:

def1
ghi1
jkl1
def2
ghi2
jkl2
Run Code Online (Sandbox Code Playgroud)

我使用sed匹配模式一次:

sed -e '1,/abc/d' -e '/mno/,$d' <FILE>
Run Code Online (Sandbox Code Playgroud)

有没有办法在sedawk 反复做,直到文件的结尾?

unix shell awk sed pattern-matching

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

打印除前三列之外的所有列

太麻烦了:

awk '{print " "$4" "$5" "$6" "$7" "$8" "$9" "$10" "$11" "$12" "$13}' things
Run Code Online (Sandbox Code Playgroud)

awk

111
推荐指数
7
解决办法
24万
查看次数

打印文件中一行的最后一列

我有一个不断写入/更新的文件.我想找到包含特定单词的最后一行,然后打印该行的最后一列.

该文件看起来像这样.随着时间的推移,将附加更多的A1/B1/C1线.

A1 123 456
B1 234 567
C1 345 678
A1 098 766
B1 987 6545
C1 876 5434
Run Code Online (Sandbox Code Playgroud)

我试着用

tail -f file | grep A1 | awk '{print $NF}'
Run Code Online (Sandbox Code Playgroud)

打印值766,但没有输出.

有没有办法做到这一点?

awk file tail

109
推荐指数
4
解决办法
19万
查看次数

标签 统计

awk ×10

sed ×4

shell ×4

unix ×4

bash ×2

linux ×2

file ×1

gawk ×1

grep ×1

ksh ×1

pattern-matching ×1

scripting ×1

shebang ×1

sorting ×1

tail ×1

text ×1