小编Won*_*eal的帖子

删除文件中匹配一个字符串但不匹配另一个字符串的行 - SED,BASH?

我想删除文件中包含"test"一词的所有行,但如果该行包含"test @",那么我不想删除它.

可能有一些时髦的方式用sed这样做,但我很挣扎,我试着用sed写一个bash循环,但这可能是愚蠢的.

filetest=/tmp/filetest
filetest_tmp=/tmp/filetest.tmp<
line_num=0

while read line; do
        line_num=$(($line_num+1))
        if [[ $line == *rootsh* ]] && [[ $line != *root@* ]]
                then
                sed -e "${line_num}"'d' $filetest >> $filetest_tmp
        fi
done < $filetest
cp $syslog_tmp $filetest
Run Code Online (Sandbox Code Playgroud)

你可以告诉我,我是一个新手:(

unix linux bash sed sh

5
推荐指数
1
解决办法
6045
查看次数

标签 统计

bash ×1

linux ×1

sed ×1

sh ×1

unix ×1