Skip to content

FILE()

Synopsis

Read or write text file.

Description

Read and write text file in character and line mode.

Examples:

Read mode (byte):

Example: Reads the entire content of the file
same => n,Set(foo=${FILE(/tmp/test.txt)})
Example: Reads from the 11th byte to the end of the file (i.e. skips the first 10)
same => n,Set(foo=${FILE(/tmp/test.txt,10)})
Example: Reads from the 11th to 20th byte in the file (i.e. skip the first 10, then read 10 bytes)
same => n,Set(foo=${FILE(/tmp/test.txt,10,10)})
Read mode (line):

Example: Reads the 3rd line of the file
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)})
Example: Reads the 3rd and 4th lines of the file
same => n,Set(foo=${FILE(/tmp/test.txt,3,2,l)})
Example: Reads from the third line to the end of the file
same => n,Set(foo=${FILE(/tmp/test.txt,3,,l)})
Example: Reads the last three lines of the file
same => n,Set(foo=${FILE(/tmp/test.txt,-3,,l)})
Example: Reads the 3rd line of a DOS-formatted file
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})
Write mode (byte):

Example: Truncate the file and write bar
same => n,Set(FILE(/tmp/test.txt)=bar)
Example: Append bar
same => n,Set(FILE(/tmp/test.txt,,,a)=bar)
Example: Replace the first byte with bar (replaces 1 character with 3)
same => n,Set(FILE(/tmp/test.txt,0,1)=bar)
Example: Replace 10 bytes beginning at the 21st byte of the file with bar
same => n,Set(FILE(/tmp/test.txt,20,10)=bar)
Example: Replace all bytes from the 21st with bar
same => n,Set(FILE(/tmp/test.txt,20)=bar)
Example: Insert bar after the 4th character
same => n,Set(FILE(/tmp/test.txt,4,0)=bar)
Write mode (line):

Example: Replace the first line of the file with bar
same => n,Set(FILE(/tmp/foo.txt,0,1,l)=bar)
Example: Replace the last line of the file with bar
same => n,Set(FILE(/tmp/foo.txt,-1,,l)=bar)
Example: Append bar to the file with a newline
same => n,Set(FILE(/tmp/foo.txt,,,al)=bar)

Note

If 'live_dangerously' in 'asterisk.conf' is set to 'no', this function can only be executed from the dialplan, and not directly from external protocols.

Syntax

FILE(filename,offset,length,options,format)
Arguments
  • filename
  • offset - Maybe specified as any number. If negative, offset specifies the number of bytes back from the end of the file.
  • length - If specified, will limit the length of the data read to that size. If negative, trims length bytes from the end of the file.
  • options

    • l - Line mode: offset and length are assumed to be measured in lines, instead of byte offsets.

    • a - In write mode only, the append option is used to append to the end of the file, instead of overwriting the existing file.

    • d - In write mode and line mode only, this option does not automatically append a newline string to the end of a value. This is useful for deleting lines, instead of setting them to blank.

  • format - The format parameter may be used to delimit the type of line terminators in line mode.

    • u - Unix newline format.

    • d - DOS newline format.

    • m - Macintosh newline format.

See Also

Generated Version

This documentation was generated from Asterisk branch 20 using version GIT