Как я могу добавить строку к файлу в сценарии оболочки?

У вас должен быть атрибут 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.

41
задан Benjamin W. 14 December 2017 в 16:28
поделиться

6 ответов

Это добавляет пользовательский текст в начале Вашего файла:

echo 'your_custom_escaped_content' > temp_file.csv
cat testfile.csv >> temp_file.csv
mv temp_file.csv testfile.csv
34
ответ дан tunnuz 27 November 2019 в 00:11
поделиться

Для ответа на исходный вопрос вот то, как Вы делаете это с sed:

sed -i '1icolumn1, column2, column3' testfile.csv

"1i" команда говорит sed идти, чтобы выровнять 1 и вставить текст там.

-i опция заставляет файл быть отредактированным "на месте" и может также взять дополнительный аргумент для создания файла резервной копии, например

sed -i~ '1icolumn1, column2, column3' testfile.csv

удержал бы исходный файл "testfile.csv ~".

69
ответ дан Matthew Crumley 27 November 2019 в 00:11
поделиться

Это не использует sed, но использующий>> добавит в файл. Например:

echo 'one, two, three' >> testfile.csv

Редактирование : Для предварительного ожидания в файл попробуйте что-то вроде этого:

echo "text"|cat - yourfile > /tmp/out && mv /tmp/out yourfile

я нашел это через быстрое поиск Google .

11
ответ дан Scottie T 27 November 2019 в 00:11
поделиться

sed является базирующейся строкой, таким образом, я не уверен, почему Вы хотите сделать это с sed. Парадигма больше обрабатывает одну строку за один раз (Вы могли также программно найти # полей в CSV и генерировать Вашу строку заголовка с awk), Почему не всего

echo "c1, c2, ... " >> file
cat testfile.csv >> file

?

3
ответ дан Steve B. 27 November 2019 в 00:11
поделиться

Насколько я понимаю, Вы хотите предварительно ожидать column1, column2, column3 к Вашему существующему one, two, three.

я использовал бы ed вместо sed, с тех пор sed запись на стандартном выводе а не в файле.

команда:

printf '0a\ncolumn1, column2, column3\n.\nw\n' | ed testfile.csv

должен сделать работу.

perl -i стоит смотреть также.

8
ответ дан mouviciel 27 November 2019 в 00:11
поделиться

Используйте жемчуг-i с командой, которая заменяет начало строки 1 с тем, что Вы хотите вставить (.bk будет иметь эффект, что Ваш исходный файл сохранен):

perl -i.bk -pe 's/^/column1, column2, column3\n/ if($.==1)' testfile.csv  
1
ответ дан 27 November 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: