【问题标题】:retain in pipe character in text file in linux在Linux中的文本文件中保留管道字符
【发布时间】:2018-04-06 21:15:40
【问题描述】:

我有一个带有 2 列的管道分隔文件:

GTB_NIASNA_S1|Select right('000000000000000' **"\|"**| CIS_ID,15) as CISNO,g.* from trgisl.GTB_NIASNA g where \$CONDITIONS AND g.CIS_ID <> '000000000000000' and g.CIS_ID is not null

我正在尝试使用脚本读取此文件:

IFS="|" sed 1,3d /home/ndeshpande/tables_gtb.txt|同时读取 f1 f2 做 echo $f2 完成

但是,当它在选择查询中打印管道的值时:

选择 right('000000000000000' " " CIS_ID,15) as CISNO,g.* from trgisl.GTB_NIASNA g 其中 $CONDITIONS AND g.CIS_ID '000000000000000' 和 g.CIS_ID 不为空

我尝试输入所有转义字符,但没有成功。想知道是否有保留选择查询中的管道

【问题讨论】:

  • 您只是想跳过第一列吗? cut 可能更有用。 cat tables_gtb.txt | cut -d\| -f2-
  • 不,我想保留管道

标签: linux shell sed sh


【解决方案1】:

不确定之前有人发过帖子,而这正是我一直在寻找的东西。我使用的 IFS 位置不正确。我相应地修复了我的代码:

sed 1,3d /home/ndeshpande/tables_gtb.txt|while IFS="|" read f1 f2
do
echo $f2
done

而不是在我使用 IFS 之前放置它,这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2017-01-27
    • 2014-10-29
    相关资源
    最近更新 更多