在我的大文件中,
HomeContainer = () => {
return (
<div>
<Navigation />
<Route path="/" component={Home} />
<Route path="/login" render={props => <LogIn {...props} />}/>
<Route path="/register" component={Register} />;
<Footer />
</div>
);
};
DefaultContainer = () => {
return (
<div className="app_container">
<SideNav />
<Route path="/dashboard" component={Dashboard} />
<Route path="/dashboard/recent" component={Recent} />
<Route path="/dashboard/AddNote" component={AddNote} />
<Route path="/dashboard/ToDo" component={ToDo} />
</div>
);
};
render() {
return (
<div>
<BrowserRouter>
<Switch>
<Route path="/" component={this.HomeContainer} />
<AuthRoute path="/dashboard" authed={this.props.auth} component={this.DefaultContainer} />
</Switch>
</BrowserRouter>
</div>
);
}
}
如何分别用/ 1和/ 2替换\ tab 77和\ tab 141?我喜欢bash脚本,因为我有许多这样的文件。 请解释一下答案,以防万一,因为正则表达式的结果太令人困惑了...
HISEQ1:122:D0P60ACXX:3:1101:8389:1991 77
HISEQ1:122:D0P60ACXX:5:1102:11591:168589 141
答案 0 :(得分:1)
请您尝试以下。
sed -E -i 's/ +77/\/1/;s/ +141/\/2/' Input_file
答案 1 :(得分:1)
我个人会使用perl
而不是sed
:
perl -i -pe 's/\s+77/\/1/g' file.txt
perl -i -pe 's/\s+141/\/2/g' file.txt
这两个命令将遍历file.txt
并在两者中执行就地替换-首先,寻找空格,后跟“ 77”,并替换为“ / 1”,然后寻找空格,后跟“ 141”并替换为“ / 2”。
如果要一行完成,可以使用以下命令:
perl -1 -pe '$one="\/1"; $two="\/2"; s/(\s+77)|\s+141/$1 ? $one : $two/eg' file.txt
由于要打印都使用转义符的“ / 1”和“ / 2”,因此需要在评估它们之前将字符串文字存储在变量中,否则会出现语法错误。