diff --git a/README.md b/README.md
index 6f5ab2a..4c09f22 100644
--- a/README.md
+++ b/README.md
@@ -21,9 +21,11 @@ format x bool.;
%rainCloudPlot(sashelp.cars,DriveTrain,Invoice)
%zipLibrary(sashelp,libOut=work)
+
+%bpPIPE(ls -la ~/)
```
and more.
-SHA256 digest for the latest version of `BasePlus`: D8DBB7CC5952331FA59FEBBBDD15BC543FE3C89A8BA9150FE6AF5E412868EBE7
+SHA256 digest for the latest version of `BasePlus`: A6F1977DC4EC22A39DDC7BCE68CF562AF54351A3D385D488EC3067B5A7C0F3CB
[**Documentation for BasePlus**](./baseplus.md "Documentation for BasePlus")
diff --git a/baseplus.md b/baseplus.md
index 2f2173a..b856736 100644
--- a/baseplus.md
+++ b/baseplus.md
@@ -49,14 +49,14 @@
* [`%LDsNm()` macro](#ldsnm-macro)
* [`%LVarNm()` macro](#lvarnm-macro)
* [`%LVarNmLab()` macro](#lvarnmlab-macro)
-
+ * [`%bpPIPE()` macro](#bppipe-macro)
* [License](#license)
---
-# The BasePlus package [ver. 1.17.3] ###############################################
+# The BasePlus package [ver. 1.18.4] ###############################################
The **BasePlus** package implements useful
functions and functionalities I miss in the BASE SAS.
@@ -220,63 +220,69 @@ data MyNextDataset;
run;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+**Example 12**: List, to the log, content of `home` directory.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
+%bpPIPE(ls -la ~/)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
---
Package contains:
-1. macro deduplistc
-2. macro deduplistp
-3. macro deduplists
-4. macro deduplistx
-5. macro functionexists
-6. macro getvars
-7. macro ldsn
-8. macro ldsnm
-9. macro lvarnm
-10. macro lvarnmlab
-11. macro qdeduplistx
-12. macro qgetvars
-13. macro qzipevalf
-14. macro raincloudplot
-15. macro symdelglobal
-16. macro unziplibrary
-17. macro zipevalf
-18. macro ziplibrary
-19. format bool
-20. format boolz
-21. format ceil
-22. format floor
-23. format int
-24. functions arrfill
-25. functions arrfillc
-26. functions arrmissfill
-27. functions arrmissfillc
-28. functions arrmisstoleft
-29. functions arrmisstoleftc
-30. functions arrmisstoright
-31. functions arrmisstorightc
-32. functions bracketsc
-33. functions bracketsn
-34. functions catxfc
-35. functions catxfi
-36. functions catxfj
-37. functions catxfn
-38. functions deldataset
-39. functions semicolonc
-40. functions semicolonn
-41. format brackets
-42. format semicolon
-43. proto qsortincbyprocproto
-44. functions frommissingtonumberbs
-45. functions fromnumbertomissing
-46. functions quicksort4notmiss
-47. functions quicksorthash
-48. functions quicksorthashsddv
-49. functions quicksortlight
+1. macro bppipe
+2. macro deduplistc
+3. macro deduplistp
+4. macro deduplists
+5. macro deduplistx
+6. macro functionexists
+7. macro getvars
+8. macro ldsn
+9. macro ldsnm
+10. macro lvarnm
+11. macro lvarnmlab
+12. macro qdeduplistx
+13. macro qgetvars
+14. macro qzipevalf
+15. macro raincloudplot
+16. macro symdelglobal
+17. macro unziplibrary
+18. macro zipevalf
+19. macro ziplibrary
+20. format bool
+21. format boolz
+22. format ceil
+23. format floor
+24. format int
+25. functions arrfill
+26. functions arrfillc
+27. functions arrmissfill
+28. functions arrmissfillc
+29. functions arrmisstoleft
+30. functions arrmisstoleftc
+31. functions arrmisstoright
+32. functions arrmisstorightc
+33. functions bracketsc
+34. functions bracketsn
+35. functions catxfc
+36. functions catxfi
+37. functions catxfj
+38. functions catxfn
+39. functions deldataset
+40. functions semicolonc
+41. functions semicolonn
+42. format brackets
+43. format semicolon
+44. proto qsortincbyprocproto
+45. functions frommissingtonumberbs
+46. functions fromnumbertomissing
+47. functions quicksort4notmiss
+48. functions quicksorthash
+49. functions quicksorthashsddv
+50. functions quicksortlight
-*SAS package generated by generatePackage, version 20221125*
+*SAS package generated by generatePackage, version 20221215*
The SHA256 hash digest for package BasePlus:
-`D8DBB7CC5952331FA59FEBBBDD15BC543FE3C89A8BA9150FE6AF5E412868EBE7`
+`A6F1977DC4EC22A39DDC7BCE68CF562AF54351A3D385D488EC3067B5A7C0F3CB`
---
# Content description ############################################################################################
@@ -3934,6 +3940,42 @@ The basic syntax is the following, the `<...>` means optional parameters:
---
+## >>> `%bpPIPE()` macro: <<< #######################
+
+The bpPIPE() [Base Plus PIPE] macro executes OS command
+and print to the log output of the execution.
+
+Under the hood it uses `_` filename reference to PIPE device.
+
+### SYNTAX: ###################################################################
+
+The basic syntax is the following, the `<...>` means optional parameters:
+~~~~~~~~~~~~~~~~~~~~~~~sas
+%bpPIPE( )
+~~~~~~~~~~~~~~~~~~~~~~~
+
+**Arguments description**:
+
+* **NO Arguments** - Everything inside brackets is treated as an OS command.
+
+---
+
+### EXAMPLES AND USECASES: ####################################################
+
+**EXAMPLE 1.** List, to the log, content of D and C drives:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
+ %bpPIPE(D: & dir & dir "C:\")
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+**EXAMPLE 2.** List, to the log, content of `home` directory:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
+ %bpPIPE(ls -halt ~/)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+---
+
+
## License ####################################################################
Copyright (c) since 2020 Bartosz Jablonski
diff --git a/baseplus.zip b/baseplus.zip
index eb85b9d..1334c44 100644
Binary files a/baseplus.zip and b/baseplus.zip differ
diff --git a/hist/1.18.4/baseplus.zip b/hist/1.18.4/baseplus.zip
new file mode 100644
index 0000000..1334c44
Binary files /dev/null and b/hist/1.18.4/baseplus.zip differ