"test"という単語を含むファイルのすべての行を削除しますが、その行に "test @"が含まれている場合は削除しません。1つの文字列に一致するが、別の文字列に一致しないファイル内の行を削除する - SED、BASH?
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 != *[email protected]* ]]
then
sed -e "${line_num}"'d' $filetest >> $filetest_tmp
fi
done < $filetest
cp $syslog_tmp $filetest
あなたが言うことができるように、私はこれで初心者くさいよ:(
例で「ルート」を使用する場合は、説明に「テスト」を使用しないでください。あなたの例で "testsh"/"test @"を使用するときは、あなたの記述に "test"/"test @"を使わないでください。質問を書くときにはさらに注意してください。お願いします? – hop