Я новичок в bash, и я пытаюсь удалить строку в файле, который я создаю.Что случилось с этим sed? (пытается удалить строку)
Итак, без дальнейших церемоний:
if [[ $(ls -1 | grep 'fichiers.toCheck' | wc -l) -eq 0 ]]; then
touch fichiers.toCheck
fi
find . -name '*.mp4' > fichiers.toCheck
while read p; do
echo $p
sed -i "$p/d" ./fichiers.toCheck
done <fichiers.toCheck
Консоль дает мне это:
sed: 1: "./fichiers.toCheck": invalid command code .
Я заподозрить СЕПГ интерпретирует «/» в строке в качестве аргумента (строка что-то как»./nosound.mp4" .
Что ваше предположение?
редактировать 2 = правильные уа синтаксиса s с -i.bak
sed -i.bak "[email protected][email protected]@" fichiers.toCheck
редактировать = так вот мои эксперименты:
while read p; do
echo $p
sed -i "/$p/d" fichiers.toCheck
done <fichiers.toCheck
И я получаю:
sed: 1: "fichiers.toCheck": invalid command code f
sed -i "@[email protected]" fichiers.toCheck
и та же ошибка:
sed: 1: "fichiers.toCheck": invalid command code f
Синтаксис является n'd', например '15d', или'/'regexp'/d', например'/Blondie/d'. – AlexP
Я редактировал свое сообщение, чтобы ответить вам! – petaire
Кстати, вы можете проверить, существует ли файл с 'if [[! -e файл]], затем нажмите файл, fi' или в одной строке '[[! -e file]] && touch file' –