我在这样的Unix文件中有第一条记录,我想从中将CST_ID检索到变量中。
CST_ID||@||CST_NAME||@||CST_ADD||@||CST_ACC
我该怎么办?我正在使用它。
head -1 test.txt | awk -F '||@||' '{print $1}'
但是,它会将CST_ID||
作为输出,但我只需要CST_ID
。
答案 0 :(得分:1)
您可以使用img
,就像您添加的代码一样。
cut
robert@habanero:~$ cat input
CST_ID||@||CST_NAME||@||CST_ADD||@||CST_ACC
robert@habanero:~$ cut -d '|' -f 1 < input
CST_ID
定义分隔符,这里是管道。它需要使用单引号,以便shell不会解释它。 -d
指定您想要的字段,在本例中为第一个字段。
如果您只想为特定行数执行此操作,请将其与-f
(或head
)相结合。
在这样的变量中捕获它(假设是bash):
tail
答案 1 :(得分:0)
示例输入:
cat sample
CST_ID||@||CST_NAME||@||CST_ADD||@||CST_ACC
解决方案:grep
从行的开头到第一个||
。 -m
用于在首场比赛后退出
awk
:||
设置为分隔符,并打印第一个字段。 NR==1
是将搜索限制为第一个字段。
grep -m1 -oP '^.*?(?=\|\|)' sample
CST_ID
awk -F'\\|\\|' 'NR==1{print $1}' sample
CST_ID
awk -F'\\|\\|' 'NR==1{NF=1}1' sample
CST_ID