用于删除文本文件中的文本行的Shell脚本

时间:2014-10-23 15:00:11

标签: android bash shell sh

如果文件中存在文本行,如何删除?

到目前为止,我在猜测

#!/sbin/sh

mount -o remount,rw /system;

# Make a backup first
cp /system/build.prop /system/build.prop.bak;

# Append
if [ grep -o 'wifi.supplicant_scan_interval' <<</system.build.prop > 1 ]; then
    echo "YO";
fi;

mount -o remount,ro /system;

然而,这显示了我YO,无论它是&gt; 1或者&lt; 1(它确实存在于文件中),所以这部分看起来不对,我也不知道怎么能删除该行?

你能帮忙吗?

代码更新

#!/sbin/sh
mount -o remount,rw /system;

function check_prop(){
    busybox grep $1 /system/build.prop;
    return $?;
}

# Make a backup first
cp /system/build.prop /system/build.prop.bak;

echo $(check_prop 'wifi.supplicant_scan_interval');

# Append
if [ $(check_prop 'wifi.supplicant_scan_interval') > 1 ]; then
    # Do my stuff here?
    echo 'YO';
fi;

mount -o remount,ro /system;

给我一​​个空白行,YO。如果我将其更改为&lt; 1它做同样的事情

1 个答案:

答案 0 :(得分:2)

sed '/wifi.supplicant_scan_interval/d' inputfile 

会删除与wifi.supplicant_scan_interval

匹配的行

例如

$cat input 
hello
world 
hai
$sed '/world/d' input 
hello
hai

如果你想从文件中删除行-i选项,那就是行动inplace

sed -i '/wifi.supplicant_scan_interval/d' inputfile 

修改

使用grep打印除了与模式匹配的行以外的所有行。

grep -v 'wifi.supplicant_scan_interval' inputfile 

例如

$ grep -v 'world' input 
hello
hai

-v选项执行否定。