синтаксическая ошибка в условном выражении при выполнении сценария оболочки?

Можно использовать head или tail управлять количеством файлов, которые Вы ограничиваете из файла abc.txt.

Пример

Образец abc.txt файл.

$ cat abc.txt
afile1
afile10
afile2
afile3
afile4
afile5
afile6
afile7
afile8
afile9

Теперь мы будем смолить только 1-е 3 файла от abc.txt:

$ head -3 abc.txt | tr '\n' '\0' | tar --null --no-recursion -uf abc.tar -T -

Вышеупомянутое берет вывод от head ..., преобразовывает конец символов строки (\n) к нулевым символам (\0). Этот вывод затем передается по каналу к tar, который принимает его через STDIN, (-T -). Этот последний бит говорит tar для взятия STDIN в качестве входа это - список имен файлов к tar.

Подтверждение abc.tar:

$ tar tvf abc.tar 
-rw-rw-r-- saml/saml         0 2013-08-05 13:24 afile1
-rw-rw-r-- saml/saml         0 2013-08-05 13:24 afile10
-rw-rw-r-- saml/saml         0 2013-08-05 13:24 afile2

Можно изменить вышеупомянутое от head -3 ... направляться-100...for example, to get the 1st 100. Or you could useхвост-100...' для получения последних 100 в файле.

3
07.03.2014, 04:18
1 ответ
[112413]Bash's [112841][[[112842]] не поддерживает [112843]-a[112844]. Один из подходов заключается в использовании [112845][[112846] и в противном случае сохранить все как есть:
  • Для достижения наилучших результатов с [112847][[112848], однако, следует использовать переменные в двойных кавычках:
  • Хотя в общем случае [112849]-a[112850] и [112851]-o[112852] следует избегать, так как команда [112853][[112854] не может надежно разобрать свои аргументы, когда она получает более 4 (кроме [113239][[113240] и [113241]][113242])[112856]. Поэтому
  • В качестве альтернативы[112858] сохраните [112859][[[112860], но используйте [112861]&&[112862] для [112863]-a[112864]:
  • Многие предпочитают [112865][[[[112866]], а не [112867][[112868], потому что двойные кавычки вокруг переменных являются ненужными.

    Но здесь, если вы собираетесь использовать специфический синтаксис ksh/bash/zsh, для арифметического сравнения, вы можете также написать:

    MORE:[112870] Строки [112871]grep[112872] имеют две проблемы. Как отметил Хауке, в одной из них есть лишняя двоеточие. Во-вторых, для использования синтаксиса [112873][0-9]+[112874], обе строки нуждаются в опции [112875]-E[112876] для расширенного regex:

    5
    27.01.2020, 21:16

    Теги

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