Альтернатива должна иметь подключение программы к другому X-серверу. Вы можете также
Так или иначе Ваш сценарий тестирования должен ДИСПЛЕЙ АППАРАТА для перенаправления программы к другому X-серверу (это, вероятно, назовут:1).
Пока файл не является символьной ссылкой или hardlink, можно использовать sed, хвост или awk. Пример ниже.
$ cat t.txt
12
34
56
78
90
$ sed -e '1,3d' < t.txt
78
90
Можно также использовать sed оперативный без временного файла: sed -i -e 1,3d yourfile
. Это ничего не повторит, это просто изменит оперативный файл. Если Вы не должны передавать результат по каналу к другой команде, это легче.
$ tail -n +4 t.txt
78
90
$ awk 'NR > 3 { print }' < t.txt
78
90
Если сведенные в таблицу строки - те, которые имеют символ табуляции:
grep '␉' <input_file >output_file
(␉
будучи литеральным символом табуляции) или эквивалентно
sed -n '/␉/p' <input_file >output_file
В bash/ksh/zsh сценарии можно записать $'\t'
для вкладки, например. grep $'\t'
или sed -n $'/\t/p'
.
Если Вы хотите устранить 10 строк в начале файла:
tail -n +11 <input_file >output_file
(обратите внимание, что это +11
устранить 10 строк, потому что +11
означает, “начинают со строки 11” и строк бортовых номеров от 1) или
sed '1,10d' <input_file >output_file
На Linux можно использовать в своих интересах sed's GNU -i
опция изменить файлы на месте:
sed -i -n '/\t/p' *.txt
Или можно использовать цикл оболочки и временные файлы:
for x in *.txt; do
tail -n +11 <"$x" >"$x.tmp"
mv "$x.tmp" "$x"
done
Или если Вы не хотите изменять файлы на месте, но вместо этого давать им другое имя:
for x in *.txt; do
tail -n +11 <"$x" >"${x%.txt}.data"
done
Вы можете использовать Vim в режиме Ex:
ex -sc '1d5|x' file
1
перейти к первой строке
5
выбрать 5 строк
d
удалить
x
сохранить и закрыть
# deletes first line
echo "a\nb" | sed '1d'
# read list.txt and write list.csv without first line
cat list.txt | sed '1d' > list.csv
Другие полезные команды:
# finds first character (pipe|)
grep '^|'
# deletes pipe
sed 's/|//g'
# deletes space
sed 's/ //g'
Использование bash
для очистки файла с использованием процентного числа вместо абсолютного числа строк:
sed -i -e 1,$( printf "$((`cat php_errors.log | wc -l` * 75 /100 ))" )d php_errors.log
Остерегайтесь, потому что эта команда может быть разрушительной, поскольку она удаляет содержимое в -месте без создания копии.
Удаляет первые 75% строк из указанного файла.
sed -i -e 1,3d yourfile
. Это ничего не повторит, это просто изменит оперативный файл. Если Вы не должны передавать результат по каналу к другой команде, это легче. – Yanick Girouard 03.05.2012, 02:46sed -i
конкретно. Большинство реализаций просто удаляет файл и заменяет его новым, который не работает на ссылки, так как Вы заканчиваете тем, что оставили оригинал в его другом местоположении. – jw013 08.01.2014, 00:21