У вас должен быть атрибут name
в элементах формы, а затем проверьте значение этого имени до setState
. Таким образом, метод render()
выглядит следующим образом
render() {
const {name, surname} = this.state;
const { street, city} = this.state.address;
return (
);
}
и handleChange()
handleChange = e => {
const name = e.target.name;
if (name === 'city' || name === 'street') {
this.setState({
address: {
...state.address,
[name]: e.target.value
}
});
} else {
this.setState({
[name]: e.target.value
});
}
};
...
- это ES6 Spread Operator , это самый чистый способ обновить вложенное состояние в React.
Это добавляет пользовательский текст в начале Вашего файла:
echo 'your_custom_escaped_content' > temp_file.csv
cat testfile.csv >> temp_file.csv
mv temp_file.csv testfile.csv
Для ответа на исходный вопрос вот то, как Вы делаете это с sed:
sed -i '1icolumn1, column2, column3' testfile.csv
"1i" команда говорит sed идти, чтобы выровнять 1 и вставить текст там.
-i опция заставляет файл быть отредактированным "на месте" и может также взять дополнительный аргумент для создания файла резервной копии, например
sed -i~ '1icolumn1, column2, column3' testfile.csv
удержал бы исходный файл "testfile.csv ~".
Это не использует sed, но использующий>> добавит в файл. Например:
echo 'one, two, three' >> testfile.csv
Редактирование : Для предварительного ожидания в файл попробуйте что-то вроде этого:
echo "text"|cat - yourfile > /tmp/out && mv /tmp/out yourfile
я нашел это через быстрое поиск Google .
sed является базирующейся строкой, таким образом, я не уверен, почему Вы хотите сделать это с sed. Парадигма больше обрабатывает одну строку за один раз (Вы могли также программно найти # полей в CSV и генерировать Вашу строку заголовка с awk), Почему не всего
echo "c1, c2, ... " >> file
cat testfile.csv >> file
?
Насколько я понимаю, Вы хотите предварительно ожидать column1, column2, column3
к Вашему существующему one, two, three
.
я использовал бы ed
вместо sed
, с тех пор sed
запись на стандартном выводе а не в файле.
команда:
printf '0a\ncolumn1, column2, column3\n.\nw\n' | ed testfile.csv
должен сделать работу.
perl -i
стоит смотреть также.
Используйте жемчуг-i с командой, которая заменяет начало строки 1 с тем, что Вы хотите вставить (.bk будет иметь эффект, что Ваш исходный файл сохранен):
perl -i.bk -pe 's/^/column1, column2, column3\n/ if($.==1)' testfile.csv