【发布时间】:2016-08-07 17:16:14
【问题描述】:
我正在尝试在拆分的两侧替换给定上下文。这在 python 中似乎更容易做到,但我的整个管道都在 bash 中,所以我很想坚持使用 sed、awk、grep 等工具。
例如:
split_0 = split('\t')[0]
split_1 = split('\t')[1]
if (a b c in split_0 AND w x y z in split_1):
split_1 = split_1.replace('w x y z', 'w x_y z')
我可以使用 awk 进行这样的拆分:
awk -F '\t' '{print$1}'
但我不知道如何同时在双方执行此操作以满足两个条件。任何帮助将不胜感激。
输入/输出示例: 这是一个例子,我有很多这样的规则,但基本上我想在这里做的是一个例子,左边有“ex”,右边有“ih gz”,我想用ih gz 去 ih g_z。
input: exam ih g z ae m
output: exam ih g_z ae m
我可以做一个残酷的 sed 像:
sed 's/\(.*ex.*\t.*\)ih g z\(.*\)/\1ih g_z\2/g'
但这看起来很难看,我相信有更好的方法来做到这一点。 *我不完全确定 "\t" 是否在 sed 中以这种方式工作。
【问题讨论】:
-
你能给我们一些输入/输出的例子吗?
-
@Llama 先生,更新了!
-
@Ed Morton 我认为如果我更好地解释这个例子可能会更好。但我认为这个问题很清楚。这不是简单的替换,而是在给定两侧条件的情况下在一侧替换。
-
不知道为什么我的问题被否决了...