【发布时间】:2016-11-24 18:53:32
【问题描述】:
我有一个文本文件3.txt,内容是这样的
123.ooo
aaaa - bbbb ccccc, dddd dddd, eeee fff (hhhhh ii jjj) 890a fff rrr 98.jjjj.1234
444.kkk
将 3.txt 读入数组 VAR
#!/bin/bash
VAR=$(cat /tmp/3.txt)
LEN=${#VAR[@]}
for (( i=0; i<${LEN}; i++ ));
do
echo ${VAR[$i]}
sed -i -e "#"${VAR[$i]}"#d" /tmp/3.txt
cat /tmp/3.txt
done
我想echo 123.ooo 然后删除/tmp/3.txt 中的123.ooo 行
然后echo aaaa - bbbb ccccc, dddd dddd, eeee fff (hhhhh ii jjj) 890a fff rrr 98.jjjj.1234 并删除/tmp/3.txt 中的这一行
但是第二行有空间,如何使用 sed 删除第二行?
对不起,我的英语很差。
我想echo 第一行,然后删除文件中的第一行。
echo 第二行,然后删除文件中的第二行。
echo第三行,然后删除文件中的第三行。
【问题讨论】:
-
您的实际需求是什么?删除文件中包含模式
123.ooo和aaaa - bbbb ccccc, dddd dddd, eeee fff (hhhhh ii jjj) 890a fff rrr 98.jjjj.1234的行?对于这样一个微不足道的任务,您的脚本似乎很迂回。只需执行sed -i.bak -e '/123.ooo/d' -e '/aaaa - bbbb ccccc, dddd dddd, eeee fff (hhhhh ii jjj) 890a fff rrr 98.jjjj.1234/d' file并完成它。 -
请edit您的问题向我们展示您输入的代表性示例和相应的所需输出。
-
你想要的输出是什么?
-
对不起我的英语不好。