标签: gawk

使用竖线字符作为字段分隔符

我正在尝试不同的命令来处理 csv 文件,其中分隔符是管道|字符。

虽然这些命令在逗号是分隔符时确实有效,但当我用管道替换它时会引发错误:

awk -F[|] "NR==FNR{a[$2]=$0;next}$2 in a{ print a[$2] [|] $4 [|] $5 }" OFS=[|] file1.csv file2.csv

awk "{print NR "|" $0}" file1.csv
Run Code Online (Sandbox Code Playgroud)

我试过了,"|"[|]/|无济于事。

我在 Windows 上使用 Gawk。我错过了什么?

awk gawk

0
推荐指数
1
解决办法
5391
查看次数

awk 中的精确字符串匹配

我有一个包含以下几行的文件 test.txt

1997           100   500   2010TJ
2010TJXML      16    20    59
Run Code Online (Sandbox Code Playgroud)

我使用下一个 awk 行仅获取有关字符串 2010TJ 的信息

awk -v var="2010TJ" '$0 ~ var {print $0}' test.txt
Run Code Online (Sandbox Code Playgroud)

但代码打印了两行。我想知道如何获取包含确切字符串的行

1997  100   500   2010TJ
Run Code Online (Sandbox Code Playgroud)

该字符串可以放置在文件的任何列中。

awk gawk

0
推荐指数
1
解决办法
2万
查看次数

awk/gawk似乎覆盖了结果上的列

[TRIVIAL] [求助]

tl:dr - DOW CRLF觉得好像是胡子行为不端; 琐碎的错误!

我不确定为什么awk/gawk的表现如此.任何提示?有没有看过awk结果覆盖终端上的列?我只在一台机器上看到这个; 在其他地方,东西工作得很好!不确定这是终端行为不端还是其他任何事情.一个stty sane似乎并没有帮助的.有谁见过类似的东西?

 $ cat in.txt 
2132088 AAA_WEB_50181_552222195-1
2110665 AAA_WEB_50177_547796499-2
2157591 AAA_WEB_50181_551310844-1
2117370 AAA_WEB_50178_549250104-1
2109777 AAA_WEB_50180_551512637-1
2112704 AAA_WEB_50179_410838823-13
2116984 AAA_WEB_50178_549463801-2
2119511 AAA_WEB_50179_550076677-2
2122008 AAA_WEB_50180_551679428-1
2124984 AAA_WEB_50177_548026293-1
 $ awk '{print $2 " " $1}' in.txt 
 213208850181_552222195-1
 211066550177_547796499-2
 215759150181_551310844-1
 211737050178_549250104-1
 210977750180_551512637-1
 211270450179_410838823-13
 211698450178_549463801-2
 211951150179_550076677-2
 212200850180_551679428-1
 212498450177_548026293-1
 $ cat /etc/issue.net 
Ubuntu 14.04.4 LTS
 $ gawk '{print $2 " " $1}' in.txt 
 213208850181_552222195-1
 211066550177_547796499-2
 215759150181_551310844-1
 211737050178_549250104-1
 210977750180_551512637-1
 211270450179_410838823-13
 211698450178_549463801-2
 211951150179_550076677-2
 212200850180_551679428-1
 212498450177_548026293-1
 $ gawk -W …
Run Code Online (Sandbox Code Playgroud)

bash terminal awk gawk stty

-1
推荐指数
1
解决办法
336
查看次数

Python:在两个文件中查找公共文本

让我给出示例文本文件:

例如在file1.txt中数据是: -

qwer
asdf
zxcv
1234
Run Code Online (Sandbox Code Playgroud)

file2.txt中数据是: -

0987
5678
uiop
qwer
zxcv
Run Code Online (Sandbox Code Playgroud)

期望的结果:

qwer
zxcv
Run Code Online (Sandbox Code Playgroud)

我如何得到这个结果?我想用pythongawksed.

python sed gawk

-3
推荐指数
1
解决办法
3353
查看次数

标签 统计

gawk ×4

awk ×3

bash ×1

python ×1

sed ×1

stty ×1

terminal ×1