Ваша ситуация является, по моему скромному мнению, аналогичной той, обрисованной в общих чертах в вопросе о CentOS.
Таким образом, решением является возможно то же: Переустановить python
, затем переустановите yum
затем сделайте yum clean all && yum makecache
и впоследствии yum update
.
В Вашем случае Вы сказали sed
та печать 2-я и 7-я строка файла list.index
, не добавляют те строки к нему.
Попробуйте это:
#!/bin/sh
for i in *.txt
do
sed -n -e '2p;7p' < "$i" >> list.index
done
Это распечатает 2-ю и 7-ю строку каждого файла .txt
затем добавьте их к list.index
.
Обратите внимание, что можно сказать sed
чтобы прекратить читать после того, как это считало 7-ю строку, нет никакого смысла хранения, читающего после этого:
#! /bin/sh -
for i in *.txt; do
sed -e 2b -e 7q -e d < "$i"
done > list.index
(или sed '7q;2!d' < "$i"
короче, но немного менее четкий)
7q;2!d
гений pieve кода, интересно, почему никто не сделал очевидное и уезжает далеко for
цикл при помощи опции -s
: sed -sn '2p;7p' *.txt > list.index
– Philippos
27.03.2017, 19:00
-s
нестандартное расширение GNU. Вопреки использованию подходов q
, это также считало бы файлы полностью (мимо 7-й строки).См. также awk
с nextfile
для немного большего количества портативного подхода. (Вам также было бы нужно sed -sn ... ./*.txt
или sed -sn -- '...' *.txt
с GNU sed
если POSIXLY_CORRECT не находится в среде).
– Stéphane Chazelas
27.03.2017, 19:06
man
страница обычно говорит, о котором опции и команды являются расширениями гну, но она не говорит так для -s
. Кроме того, это все еще работает с опцией --posix
.Странно.
– Philippos
27.03.2017, 19:18
-s
опция. POSIX не передает под мандат реализации для возврата ошибки, когда приложения (сценарии/пользователи) передают опцию, которая не указана, таким образом, нет никакой причины --posix
должен влиять на то поведение. Сценарий, который использует -s
не было бы совместимо/портативно, поскольку POSIX не указывает ту опцию.
– Stéphane Chazelas
27.03.2017, 19:23
--posix
совпал бы с передачей POSIXLY_CORRECT
в среде. Обратите внимание, что POSIX не указывает a --posix
опция, так, чтобы сама опция была расширением GNU.
– Stéphane Chazelas
28.03.2017, 10:29