Ole*_*sii 6 command-line bash sed text-processing
我有一个文本文件:
cat test1
ch140/121_------_T_201607061430
ch140/121_------_T_201611070840
ch140/121_------_T_201611071125
ch140/121_------_T_201611071235
Run Code Online (Sandbox Code Playgroud)
我想将文本逐行添加到此文件中:
/121_------_T_201607061430
/121_------_T_201611070840
/121_------_T_201611071125
/121_------_T_201611071235
Run Code Online (Sandbox Code Playgroud)
结果必须是:
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235
Run Code Online (Sandbox Code Playgroud)
我用了:
cat test1 | sed -e 's/ch140//' > test2
for a in $(cat test2)
do
????
done
Run Code Online (Sandbox Code Playgroud)
我可以为此使用什么命令?
我尝试使用sed命令,但没有用。
sed 's/\/121.*/&&/' test1
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235
Run Code Online (Sandbox Code Playgroud)
s/old/new/old用。。。来代替new\/121.*匹配/121以及其后的任何内容&&匹配的模式两次您可以添加tee或使用重定向来保存到新文件
sed 's/\/121.*/&&/' test1 | tee test2
Run Code Online (Sandbox Code Playgroud)
该paste命令会执行相同的cat操作,但并排执行。用于使用空分隔符,因此字符串之间没有任何内容-d ''。paste
$ paste -d '' test1 test2
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235
Run Code Online (Sandbox Code Playgroud)
如果文件的长度不等,您可能需要查看此问题以防止出现难看的结果。