AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[pattern-matching](unix)

Martin Hope
Lahor
Asked: 2022-03-11 15:22:35 +0800 CST

如何自动将文本放入文本中?

  • 5

我需要将一个文本放在另一个文本中。

1)我有一个包含输入值列表的文件:

A1
B2
C3
D4
E5
  1. 我有一个应该包含文本的包装模式:
$wgSpecialPageLockdown['INPUT_COMES_HERE'] = array('sysop');

对于每个输入值,应该创建一个带有输入的包装器,因此最终结果应该是一个包含以下内容的文件:

$wgSpecialPageLockdown['A1'] = array('sysop');
$wgSpecialPageLockdown['B2'] = array('sysop');
$wgSpecialPageLockdown['C3'] = array('sysop');
$wgSpecialPageLockdown['D4'] = array('sysop');
$wgSpecialPageLockdown['E5'] = array('sysop');

我也愿意在 GUI 中执行此操作,例如 Visual Studio Code。

你希望如何做这样的动作?
而且,顺便问一下,这种文本操作通常是如何命名的?

text-processing pattern-matching
  • 9 个回答
  • 1336 Views
Martin Hope
Peter Kellner
Asked: 2022-02-18 17:34:11 +0800 CST

如何扩展通配符选项以包含 js 和 ts

  • 0

我有一个别名设置如下:

alias ppp='prettier --write "**/*.js"'

我也希望它能够处理我所有的 .ts 文件。可悲的是,我很不擅长外卡表达式。

alias pattern-matching
  • 2 个回答
  • 18 Views
Martin Hope
gabt
Asked: 2021-09-03 01:44:34 +0800 CST

grep 如何返回不同数量的匹配项?

  • 2

我需要将一个文件(24 行)grep 成两个文件(有点大)。

原始文件包含 24 行类似于此字符串:

AATGGACGCTTAAC[A|C|T][A|C|G]CGGC[A|T]TCGGAT

我执行以下操作:

grep -f aList hugeFile_N*.csv | wc -l
4396868

然后,为了仔细检查一切是否正常,我将文件分成两个文件,并通过另一个 grep 使用它们:

cat aList | head -n 12 > firstHalf
cat aList | tail -n +13 > secondHalf
grep -f firstHalf hugeFile_N*.csv | wc -l
2169008
grep -f secondHalf hugeFile_N*.csv | wc -l
2228046

现在,我期望来自两个单独的 grepped 文件的匹配总数将等于我为原始文件找到的匹配数。但是,如您所见:

2169008 + 2228046 = 4397054
4397054 != 4396868

不是这种情况。我们有 186 场比赛丢失。这里发生了什么?

我还对(实际上非​​常简单的)文件进行了一些调查。在这里,我从两个单独的部分 grep 的结果:

grep -f <(cat firstHalf secondHalf) hugeFile_N*.csv > together

然后我分别 grep 两半:

grep -f firstHalf hugeFile_N*.csv > separately
grep -f secondHalf hugeFile_N*.csv >> separately

而且,如前所述,匹配的数量是不同的:

wc -l together
4396868 together
wc -l separately
4397054 separately

但是,唯一匹配的数量是相同的:

sort -u together | wc -l
3735836
sort -u separately | wc -l
3735836

有趣的是,如果我 grep 原始文件中的两半,我根本没有匹配项。我想知道为什么会这样:

grep -f ../code/firstHalf ../code/aList | wc -l
0
grep -f ../code/secondHalf ../code/aList | wc -l
0

我 100% 确定两半都存在,aList因为我可以用我的编辑器看到它(它们每行 12 行,所以肉眼甚至不难看到)。

我觉得我做错了grep什么但是......什么?

里面的所有线条aList都是独一无二的。

grep pattern-matching
  • 1 个回答
  • 784 Views
Martin Hope
Prasoon
Asked: 2019-08-17 11:32:05 +0800 CST

匹配多个模式后,使用 awk 或 sed 从文件中分离结果

  • 0

从我们包含一堆 INFO 消息和系统输出行的应用程序日志中,我希望能够提取包含在 2 个模式中的行,然后专门从结果行中的其他行获取值。

这是我的输入文件

2019-08-16 00:38:29,171 1065142892 [http-bio-8443-exec-146] INFO aaaaa
2019-08-16 00:38:29,172 1065142893 [http-bio-8443-exec-146] INFO bbbbb
              'This is the matching pattern'
tag1: value1
tag2: value2
tag3: value3
'this is the end pattern' xxxyyyzzz

2019-08-16 00:39:29,171 1065142992 [http-bio-8443-exec-146] INFO aaaaa
2019-08-16 00:39:29,172 1065142993 [http-bio-8443-exec-146] INFO bbbbb
              'This is the matching pattern'
tag1: valuea
tag2: valueb
tag3: valuec
'this is the end pattern' xxxyyyzzzadasd

2019-08-16 00:38:29,171 1065142892 [http-bio-8443-exec-146] INFO aaaaa
2019-08-16 00:38:29,172 1065142893 [http-bio-8443-exec-146] INFO bbbbb
              'This is the matching pattern'
tag1: valuep

2019-08-16 01:38:29,171 1065153992 [http-bio-8443-exec-146] INFO aaaaa
2019-08-16 01:38:29,172 1065153993 [http-bio-8443-exec-146] INFO bbbbb
              'This is the matching pattern1'
tag1: valuexx
tag2: valueyy
tag3: valuezz
'this is the end pattern' xxxyyyzzzadasdqwerty

由此,我想以下列方式提取输出:

输出:

value1, value2
valuea, valueb
valuexx, valueyy

我尝试使用以下方法过滤结果

awk '/This is the matching pattern/,/This is the end pattern/' logfile
OR
awk ' /This is the matching pattern/{flag=1;next}/This is the end pattern/{flag=0}flag' logfile
OR
sed -n -e '/This is the matching pattern/,/this is the end pattern/{ /This is the matching pattern/d; /this is the end pattern/d; p; }'  logfile

但是这些在输出中带来了tag1: valuep,它开始时没有匹配的结束模式。

awk pattern-matching
  • 1 个回答
  • 37 Views
Martin Hope
Weijun Zhou
Asked: 2019-04-28 09:35:59 +0800 CST

`a[bc]d`(方括号)和 `a{b,c}d`(大括号)有什么区别?

  • 28

a[bc]d和 和有什么不一样a{b,c}d?为什么人们a{b,c}d在已经有的时候使用a[bc]d?

brace-expansion pattern-matching
  • 2 个回答
  • 3825 Views
Martin Hope
roaima
Asked: 2018-09-30 01:43:18 +0800 CST

使用 sed 打印范围内的选定行

  • 5

考虑简化文件

AAA
BBB
CCC1
DDD
EEE
CCC2
DDD
FFF
GGG
CCC3
HHH

我可以选择EEE范围FFF

sed -n '/EEE/,/FFF/p'

假设我想打印任何包含C但仅在匹配范围内的行。sed我可以通过管道传输结果grep

sed -n '/EEE/,/FFF/p' | grep 'C'

我还可以在一个小awk脚本(或perl,python等)中进行范围和匹配。但是我将如何只使用一次调用来做到这一点sed?

sed pattern-matching
  • 2 个回答
  • 2577 Views
Martin Hope
CN_229133
Asked: 2018-06-30 01:32:12 +0800 CST

计算最长的连续模式

  • 4

我有一个序列文件:

$猫文件
CACCGTTGCCAAACAATG
TTAGAAGCCTGTCAGCCT
CATTGCTCTCAGACCCAC
GATGTACGTCACATTAGA
ACACGGAATCTGCTTTTT
CAGAATTCCCAAAGATGG

我想计算最长的 C+T 段。我只能计算总 C+T,但我想要最长的延伸。

$猫文件 | awk '{ 打印 $0, gsub(/[cCtT]/,"",$1)}'
CACCGTTGCCAAACAATG 9
TTAGAAGCCTGTCAGCCT 10
CATTGCTCTCAGACCCAC 12
GATGTACGTCACATTAGA 8
ACACGGAATCTGCTTTTT 11
CAGAATTCCCAAAGATGG 7

预期结果将显示最长的 C+T 拉伸。

CACCGTTGCCAAACAATG 9 2
TTAGAAGCCTGTCAGCCT 10 3
CATTGCTCTCAGACCCAC 12 5
GATGTACGTCACATTAGA 8 2
ACACGGAATCTGCTTTTT 11 6
CAGAATTCCCAAAGATGG 7 5
awk pattern-matching
  • 5 个回答
  • 399 Views
Martin Hope
filippo
Asked: 2018-06-19 23:43:06 +0800 CST

grep 具有不同上下文的多个模式

  • 2

我有一个大致类似的文件

header_one
param1
param2
...

data_one
data1
data2
data3
data4
...

header_two
param1
param2
...

data_two
data1
data2
data3
data4

我想提取所有header带有N以下行的块和所有data带有M != N以下行的块,保持它们在文件中出现的顺序并丢弃其他所有内容。

如果M == N == 8我可以做

grep -A8 -E "header_|data_"

但是,如果我想为每种模式提供不同的上下文怎么办?

grep pattern-matching
  • 2 个回答
  • 1016 Views
Martin Hope
user274630
Asked: 2018-02-07 15:07:34 +0800 CST

具有多个条件的“查找”以使用 babun 复制到其他硬盘驱动器

  • 0

我试图在一个凌乱的旧硬盘驱动器上复制大量图片,我无法在 Windows 文件资源管理器中打开(不要问......),我必须寻求帮助我亲爱的祖母。我可以用 Babun(很棒的 Windows shell)在其中导航。

到目前为止,我已经尝试过命令:

$ find /cygdrive/h/Documents\ and\ Settings -name '*.jpeg|png|JPEG' -exec cp '{}' /cygdrive/f/tof \;

$ find /cygdrive/h/Documents\ and\ Settings -name '*.(jpeg|png|JPEG)' -exec cp '{}' /cygdrive/f/tof \;

没有结果......我错过了什么吗?

find pattern-matching
  • 2 个回答
  • 103 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve