从一个文件中提取数据并保存到另一个文件

骑士狐

我正在使用 shell 命令运行 ansible playbook 任务,根据正则表达式匹配从文件中提取数据并将其保存到另一个文件中。

我尝试使用 awk 和 sed 但无法使正则表达式正常工作。

awk '$NF == "-m.comment.*\""' iptable.txt" > file1.txt
sed 's/\/.*' iptable.txt > file2.txt

我需要保存从-m comment双引号开始的任何内容到 file1.txt,剩余的内容到 file2.txt。如果该行没有注释字段,则应仅将其保存到 file2.txt。

-P INPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p icmp -m state --state NEW -m comment --comment "Echo Request" -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m comment --comment "tcp" -j ACCEPT

预期输出:cat file1.txt

-m comment --comment "Echo Request"
-m comment --comment "tcp"

猫文件2.txt

-P INPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p icmp -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j ACCEPT
埃德·莫顿

使用 GNU awk 来匹配第三个参数():

awk 'match($0,/(.*)(-m.comment.*")(.*)/,a) {
    print a[2] " > foo"
    print a[1] a[3] " > bar"
}' file
-m comment --comment "Echo Request" > foo
-A INPUT -p icmp -m state --state NEW  -j ACCEPT > bar

使用任何 awk:

awk 'match($0,/-m.comment.*"/) {
    print substr($0,RSTART,RLENGTH) " > foo"
    print substr($0,1,RSTART-1) substr($0,RSTART+RLENGTH) " > bar"
}' file

只要改变" > foo"> "foo"和同上,对酒吧真正写入新文件。

如果这不是您所需要的,那么编辑您的问题以阐明您的要求并提供更真实的代表性示例输入/输出。

哦,当你写道:

$NF == "-m.comment.*\""

-m.comment.*\"作为正则表达式本身没有任何问题,但是==告诉 awk 进行文字字符串比较,而不是正则表达式比较。

鉴于您更新的问题,只需将上述内容调整为:

awk 'match($0,/(.*)(-m.comment.*")(.*)/,a) {
    print a[2] " > foo"
    print a[1] a[3] " > bar"
    next
}
{ print $0 " > bar" }' file
-P INPUT ACCEPT > bar
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT > bar
-m comment --comment "Echo Request" > foo
-A INPUT -p icmp -m state --state NEW  -j ACCEPT > bar
-m comment --comment "tcp" > foo
-A INPUT -p tcp -m state --state NEW  -j ACCEPT > bar

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据另一个文件的ID从一个文件中提取数据

从一个文件中提取与另一个文件中的行相对应的数据

Android Studio:如何将变量从一个Java文件保存到另一个文件

基于另一个文件中的值从一个文件中提取行-LINUX

如何从一个文件中提取列并移动到另一个文件而不打印列?

从一个奇怪的Excel文件中提取数据

python程序提取唯一的IP地址并保存到另一个文件

从另一个文件中提取随机行

如何使用awk根据另一个文件的内容从文件中提取数据?

如何使用python从另一个文件中的多个文件中提取数据?

从另一个Excel文件中提取一个Excel文件路径

搜索数据并将数据从一个文件写入另一个文件

如何将保存到文件的数据与保存到另一个文件的其他数据绑定

如何从一个数组中提取零并将非零部分保存到另一个数组?

使用grep从文本文件中提取数据并将其保存在另一个目录中

将数据从一个文件添加到另一个文件

将数据从一个文件关联到另一个文件

Python从文件中提取数据并输出到另一个

如何从一个.txt文件中提取一堆行并将其添加到另一个文件中?

如何从一个文件中提取字符串以插入(修改)到另一个文件中?

从一个php文件导航到另一个承载数据的数组

getRange 从一个文件到另一个用于新数据验证

将片段状态/数据从一个片段保存到另一个片段

如何以角度将表单数据从一个组件保存到另一个组件?

如何将列值从一个数据框中提取到另一个?

xpage将文档从一个视图保存到另一个视图

将多个记录从一个模型保存到另一个模型

R,根据另一个属性从一个属性中提取值

使用批处理文件将数据从一个文本文件提取到另一个文本文件