Файл INPUT.TXT содержит:
*
*
*
H
E
L
L
O
W
O
R
L
D
*
*
*
Мой код считывает каждый символ по строке:
while read -n1 c; do
dest+="${c}"
done < input.txt
echo $dest
Результат:
***HELLOWORLD***
Я хочу это :
*** Hello World ***
Я предполагаю, что вы используете оболочку Bash из-за параметра -N1
, что не является частью POSIX SH
Standard Отказ
Если вы бросили -N1
, то чтение
присваивает значение C
только на непустых линиях. Затем вы можете использовать расширение параметра формы
${parameter:-word}
Use Default Values. If parameter is unset or null, the expan‐
sion of word is substituted. Otherwise, the value of parameter
is substituted.
, чтобы назначить значение по умолчанию пространства , когда C
пуст. Таким образом,
#!/bin/bash
while read c; do
dest+=${c:- }
done < input.txt
echo "$dest"
Обратите внимание, что переменные экспансии не нужно цитироваться на RHS на назначении - но должны быть указаны в команде Echo
English $ DEST
будет предметом -Помощь и генерация файла и имена файла («Globbing») на оболочке - особенно важно, когда переменная может содержать *
символов.
Затем дано
$ cat input.txt
*
*
*
H
E
L
L
O
W
O
R
L
D
*
*
*
Вы должны получить
$ ./myscript
*** HELLO WORLD ***
Технически Да, но есть некоторые важные предостережения, о которых вы должны знать:
Если вы поделитесь любым разделы между Windows и Ubuntu, то любой пишет , что Вы вступаете в раздел Windows, пока он находится в состоянии выключения «быстрого запуска», может привести к потере данных, поскольку раздел не находится в состоянии «чистое», когда компьютер включен в этот режим.
Однако, если Ubuntu настроен только для чтения из раздела NTFS, то существует меньше риска потери данных или повреждения. Это может быть настроено в файле / etc / fstab
, установив раздел NTFS с помощью параметра RO
.
Вы можете узнать больше о вариантов Mount
через Руководство Если вы хотите поделиться разделами между двумя операционными системами