Каждый раз, когда это происходит, я всегда запускаю свой фокус в определенных подкаталогах. Структура FHS, которой придерживается большинство дистрибутивов Linux, размечается с этим в памяти.
Сначала загляните /var
, сопровождаемый /home
.
$ sudo du -x -d1 -h /var | sort -hr`
$ sudo du -x -d1 -h /home | sort -hr`
Можно сузить фокус к подкаталогам в любом из тех местоположений также. После того как Вы исчерпали взгляд там, я обычно перемещаюсь в /root
, и наконец остающиеся подкаталоги в /
.
Если это - основанный на Red Hat дистрибутив кэш это yum
использование для выполнения обновлений могло бы использовать большую сумму пространства. Можно использовать эту команду для очистки его:
$ yum clean packages
Другие дистрибутивы то использование apt
может сделать что-то подобное, apt-get clean
.
Я также выполнил эту команду наверху Вашего /
каталог, это местоположение может иногда становиться источником для случайных файлов журнала.
$ ls -la /
Обратите особое внимание для отмечания точкой файлов! Вещи называют .blah
, например.
Обратите внимание, что вам не нужно заранее читать файл, SED имеет команду R
, что Можно прочитать файл:
$ printf -v var "%s\n" "s1random stuff" "s2 more random stuff" "s1 final random stuff"
$ echo "$var"
s1random stuff
s2 more random stuff
s1 final random stuff
$ sed '/^s2/r file.txt' <<< "$var"
s1random stuff
s2 more random stuff
line 1
line 2
s1 final random stuff
Вы пытаетесь сделать что-то подобное?:
LINE1=`cat test.file | sed '1!d'`
LINE2=`cat test.file | sed '2!d'`
LINE3=`cat test.file | sed '3!d'`
LINE4=`cat test.file | sed '4!d'`
echo $LINE1
echo $LINE2
Вам нужно заменить новинки в переменной с \ Newline
. И текст, который будет вставлен, необходимо предшествовать \ Newline
.
var=$(<file.txt)
# Put backslash before newlines in $var
var=${var//
/\\
}
printf "s1random stuff\ns2 more random stuff\ns1 final random stuff\n" | sed "/^s2/a \
$var"