我有几个文件,它们彼此不同,并且使用;和作为分隔符。
有没有办法让我的程序读取文件?或|分隔符保存到变量中并稍后在脚本中使用?
答案 0 :(得分:0)
通常来说答案是“是”,您可以动态确定定界符并在以后的编码中使用它。
您没有提到如何确定使用哪个定界符(例如,如果数据文件中同时存在两个字符会发生什么情况?),因此为了讨论起见,我们假设确定并存储了定界符在del
变量中。
您还没有说明如何在代码中使用此定界符,因此,再次出于讨论的目的,我们将看一下使用cut
和awk
的示例。
假设我们的数据文件(mydata
)包含以下单行数据:
$ cat mydata
abc;def|ghi;jkl|mno;pqr|stu
我们现在将在;
和|
之间切换定界符,并查看一些简单的cut
和awk
示例...
############################
# set our delimiter to ';'
$ del=";"
##### display 1st field
$ cut -d"${del}" -f1 mydata
abc
$ awk -F"${del}" '{print $1}' mydata
abc
#### display 4th field
$ cut -d"${del}" -f4 mydata
pqr|stu
$ awk -F"${del}" '{print $4}' mydata
pqr|stu
############################
# set our delimiter to '|'
#
$ del="|"
##### display 1st field
$ cut -d"${del}" -f1 mydata
abc;def
$ awk -F"${del}" '{print $1}' mydata
abc;def
##### display 4th field
$ cut -d"${del}" -f4 mydata
stu
$ awk -F"${del}" '{print $4}' mydata
stu