LS -I MyExecutable - это перечисление остальных файлов DIR вместо того, чтобы отображать информацию о файле

Нет. Невозможно назначить нескалярные переменные таким образом в командной строке. Но сделать это не так уж и сложно.

Если вы можете принять фиксированное имя массива:

awk -F= '
  FNR==NR { a[$1]=$2; next}
  { print a[$1] }
' <(echo $'index=value\nindex two=value two') <(echo index two)

Если у вас есть файл, содержащий синтаксис awk для определений массивов, вы можете включить это:

$ cat <file.awk
ar["index"] = "value"
ar["index two"] = "value two"
EOF

$ gawk '@include "file.awk"; BEGIN{for (i in ar)print i, ar[i]}'

или

$ gawk --include file.awk 'BEGIN{for (i in ar)print i, ar[i]}'

Если вы действительно хотите , вы можете запустить gawk с помощью -E вместо -f , в результате чего вы получите неинтерпретируемую командную строку. Затем вы можете обработать эти параметры командной строки (если это похоже на присвоение переменной, назначьте переменную). Если вы хотите пойти по этому пути, может быть полезно посмотреть ngetopt.awk .

1
26.12.2018, 10:29
2 ответа

Вы добавляете свой файл в игнор-лист клавишей-I(буква i прописная ). Вы должны заменить его на-l(букву L маленькую)

ls -l myFile 
2
27.01.2020, 23:12

Ответ находится в man ls,

   -I, --ignore=PATTERN
          do not list implied entries matching shell PATTERN

Другими словами, вы попросили lsпроигнорировать этот файл и указать только другие файлы.

Если вам нужен длинный список, вы должны использовать опцию -lнижний регистр 'ell'.

   -l     use a long listing format

Так что попробуй

ls -l myFile
4
27.01.2020, 23:12

Теги

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