Я пытаюсь заменить третий столбец файла для себя плюс значение столбца 2 (без пробела). Я получаю правильное значение для переменной c и a, но тогда sed
не дает никакого вывода. Любая подсказка?tcsh & sed: no output
#!/bin/tcsh
setenv c `cat lig_mod.pdb | awk '{print $3}'`
echo $c
setenv a `cat lig_mod.pdb | awk '{print $3=$3$2}'`
echo $a
sed -i "" 's/^'"${c}"'$/^'"${a}"'$/g' lig_mod.pdb
Эта команда 'sed' работает с файлом на месте (от' -i'). Он также сопоставляется с значением 'c' как отдельной линией, это то, что вы хотите? Он также заменит эту строку на '^ $', что, вероятно, не так, как вы планировали. –
если я заменил -i на -e (sed не на месте), я также не получаю никаких изменений в файле. – schrodingersbird
Если вы удалите '-i', то' sed' не изменит файл и отправит ему стандартный вывод. Я не мог сказать, если вы ищете стандартный вывод и не видите его раньше, поэтому я бросил это. Основная проблема, мешающая изменениям в работе, заключается в том, что ваш шаблон и замена являются неправильными, как я также указал. '^' в шаблоне соответствует началу строки, а не началу «слова». То же самое для '$' в конце строки. –