I am not sure, but Icinga escapes every element of the command with single quotes. So I would have said | should be enough.
What I would do to verify is:
Configure it like expected
Execute the check
Look into the API how the command is actually build (Can be done by querying the service from the API, using the console on CLI or if using Director via the Inspect action in the UI)
Copy the command to the shell and see what the problem is (Sometimes running it with sudo as icinga/nagios user and using sh -c is required to really see the problem)