Это зависит от того, что является выводом sensors
. Если Ваш что-то как мой:
% sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +44.0°C (high = +70.0°C)
затем можно использовать следующий сценарий, адаптируя его соответственно. Кроме того, TEMP_STOP
и TEMP_START
, необходимо изменить регулярное выражение, которое фильтрует строку от sensors
Вы хотите использовать. Это - параметр к grep
, в temp
функция.
#!/bin/bash
TEMP_STOP=98
TEMP_START=90
temp() {
sensors | grep '^temp1:' | sed -e 's/.*: \+\([+-][0-9.]\+\)°C.*$/0\1/'
}
while true; do
TEMP=$(temp)
# keep waiting until temp is too hot
while [ $(echo "$TEMP < $TEMP_STOP" | bc) = 1 ]; do
sleep 10
TEMP=$(temp)
done
echo temp $TEMP too hot, stopping.
# now wait for it to cool down...
while [ $(echo "$TEMP > $TEMP_START" | bc) = 1 ]; do
sleep 10
TEMP=$(temp)
done
echo ok now, restarting...
done
head
могло быть полезным здесь:
-c, --bytes=[-]K
print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file
cut -c5
сокращает первые 5 символов каждой строки в ее входе. Если Вы хотите ограничить количество строк к 25, использовать head -n25
:
cut -c5 file | head -n25
cut -c5 file | head -n25 > output
.
– choroba
28.07.2013, 23:25
Можно использовать следующее sed
команда:
sed \
-e 's/\(^\w\{5\}\).*/\1/' \
-e '26,$d' \
-e '/^$/d' \
input_file > output_file
Первая часть соответствует пяти символам в начале строки, печатает их и отбрасывает остальных. Вторая часть гарантирует, что только первые 25 строк печатаются. И последняя часть удаляет пустые строки.
\w
с [[:alnum:]_]
. Также устранить пробел (все-пробел) строки, замена /^$/
с /^[[:blank:]]*$/
.
– mklement0
05.07.2015, 19:17
cat inputfile | head -c 5 > outputfile
Это должно перенаправить вывод в файл.
Если Вы хотите удалить пробелы, затем фильтруют содержание файла, т.е. удаляют пробелы перед извлечением первых пяти символов.
cat inputfile | tr -d ' ' | head -c 5 > outputfile
Можно также использовать следующий формат tr
достигнуть того же эффекта.
cat inputfile | tr -d [:space:] | head -c 5 > outputfile
tr -d [:space:]
удаляет все пробелы из текста, который был передан по каналу к этой команде.
Придерживайтесь вышеупомянутого решения, если Вы хотите усечение только для первых 5 символов файла.
Теперь, если Вы хотите сделать, это для каждой строки Вашего файла затем следует за этим:
cat inputfile | sed -e 's/ //g' | awk '{print substr($0,0,5)}' > outputfile
или
sed -e 's/ //g' < inputfile | awk '{print substr($0,0,5)}' > outputfile
Explaination: sed -e 's/ //g'
удаляет все пробелы и awk '{print substr($0,0,5)}'
печатает первые 5 символов everyline.
cat file | command
можно часто использовать command file
(downvote не от меня).
– jofel
29.07.2013, 11:32
cat
команда. Я отредактировал ответ включая новое перенаправление ввода
– debal
29.07.2013, 12:25
awk '{print $1}' /home/user/Desktop/file3.txt > /home/user/Desktop/file4.txt
– debal
02.08.2013, 05:46