Bash Find File проверяет IF и выполняет - PullRequest
0 голосов
/ 18 сентября 2018

у меня есть эти файлы

1.json2    - 2.json2    - 3.json2
1.json2.ml - 2.json2.ml -

Пример ml file

1.json2.ml
{"message":"Validation error","error":"validation_error",...

2.json2.ml
{"Ok":"OK":"OK"...}

Я хочу выполнить поиск, если * .json2.ml не выполняет запись и сохраняет ее.Если файл существует, посмотрите, есть ли ошибка, и выполните Post.

Вот код, который я использую для этого

   find . -type f -name '*.json2' | xargs bash -c 'for fname
do if [ ! -e ${fname}.ml ]
then curl -X POST -H "Content-Type: application/json" -d @${fname} https://web/api/post > ${fname}.ml  


else

sed '1d' ${fname}.ml  | while read line
do
FS=',' read pid pname
if [ "$var" -e ""error":"validation_error"" ] 
then 
curl -X POST -H "Content-Type: application/json" -d @${fname} https://web/api/post > ${fname}.ml
 echo  que ha y $pname


fi

done

' bash

У меня есть этот результат

syntax error near unexpected token `fi'

Чтоэто ожидаемый результат

1 - Post  3.json2 ( file .ml no exist )
2-  Post  1.json2 ( File .ml exist and  have error in )
3- 2.json2 and  3.json2 ( do nothing because json2.ml is OK)

1 Ответ

0 голосов
/ 18 сентября 2018

Я нашел решение с этим кодом

    else
VAR1=$(head -n 1 ${fname}.ml)
IFS="," read -ra images <<< "$VAR1"


 echo  que ha y $images

Большое спасибо Бармару и Уильяму

...