数组中的空格和换行符(Shell脚本)

时间:2015-07-27 10:43:43

标签: arrays linux bash shell unix

如何在数组中存储空格和换行符。请考虑以下是我的文件。

A.TXT:

this is file a.txt
for testing
and for checking

现在,我想在文件的每个元素中存储文件中的每个字符。喜欢' t'在arr [0],' h'在arr [1],' i'在arr [2],' s'在arr [3]和' '(空格)分别在arr [4]中。如果我打印像$ {a [*]}这样的数组内容,那么输出就是精确的文件内容。那么,有没有办法在数组中存储空格和换行符。

1 个答案:

答案 0 :(得分:1)

您可以使用:

arr=()

while IFS= read -d '' -r -n1 c; do
    arr+=("$c")
done < file
  • read -n1将使此循环按字符读取输入字符。
  • -d ''会将分隔符设为null而不是换行符
  • 读取每行中的前导或尾随空格需要
  • IFS=

验证

printf "%s" "${arr[@]}"
this is file a.txt
for testing
and for checking