Подстановка слова «open» с различными условиями

tar похож на zip-файл, который хранит множество других файлов, но не сжимает их. bzip2 сжимает файл, но только по одному за раз. Файл .tar.bz2 , вероятно, указывает на то, что группа файлов была помещена в tar и впоследствии заархивирована. Вы не можете соединить их молнией, не засыпав их в первую очередь.

Ваша ошибка связана с тем, что ваш файл .tar.bz2 поврежден. См. Ниже пример правильно работающего файла.

$ ls
test_file.tar.bz2
$ tar xvjf test_file.tar.bz2 
test_file
$ ls
test_file  test_file.tar.bz2

РЕДАКТИРОВАТЬ


В приведенном выше примере в tar-архиве был только один файл. Если вы хотите заархивировать только эту папку:

$ bzip2 test_file
$ ls
test_file.bz2
-3
20.06.2018, 12:10
2 ответа

Мы все еще можем только догадываться, как обращаться со знаками препинания, поэтому такие случаи, как open, close, где есть два слова, но они семантически разделены… не включены (замены не происходит! ).

Пока для меня следующие работы:

$ cat test.txt
open  
open door
open blue door
can you open door
the door is open
$ sed -E 's/\<open([[:space:]]+[[:alnum:]]+)/x\1/g;s/\<open[[:space:]]*$/l/g' test.txt
l
x door
x blue door
can you x door
the door is l
2
28.01.2020, 05:18

Используя примеры данных, которые вы указали в вопросе:

$ sed -E -e 's/\<open([[:space:]]+)\</x\1/g' -e 's/\<open\>/l/g' file
l
x door
x blue door
can you x door
the door is l

Это применяет две sedзамены к каждой строке. Первая замена соответствует слову open, за которым следует любое количество пробелов или знаков табуляции, и начало -шаблона слова -(\<).Он заменяет это на xи на то, сколько пробелов или вкладок было найдено. Это заменяет open, если оно предшествует слову.

Вторая замена заменяет любое оставшееся слово openна l.

2
28.01.2020, 05:18

Теги

Похожие вопросы