使用awk获取完整的字符串

时间:2016-07-19 08:32:43

标签: unix

我无法使用awk获取完整字符串。例如, File.txt有,

C1 C2 C3
A    B   'A B C'
C    D  'D E F'

如果我使用以下代码,

awk '{print $1 "," $3}' File.txt

我的输出为,

A,'A
C,'D

预期输出是,

A,'A B C'
C,'D E F

2 个答案:

答案 0 :(得分:1)

select top 1 
    a.IN_Notification_ID,
    a.DI_Surrogate_ID,
    a.IN_Ref_Content_ID,
    a.IN_Name,
    a.IN_Description,
    a.IN_Category,
    a.IN_Rank,
    a.IN_Publish_Date,
    a.IN_URL_EN,
    a.IN_URL_FR,
    a.IN_URL_NAME_EN,
    a.IN_URL_NAME_FR,
    a.IN_HEADER_EN,
    a.IN_HEADER_FR,
    a.IN_BODY_EN,
    a.IN_BODY_FR,
    a.IN_ACTION_COMPLETE_URL_EN,
    a.IN_ACTION_COMPLETE_URL_FR,
    1 as 'IN_COMPLETE',
    getdate() as 'ET_LAST_MODIFIED_DATE'
from CXXXXXXX.Important_Notices_Inbox a with (nolock)
inner join CXXXXXXX.IGO_PROFILES b with (nolock) on a.DI_Surrogate_ID = b.email
inner join CXXXXXXX.PI_CONTENTVIEWS c on b.[user_id] = c.[user_id] and a.IN_Ref_Content_ID = c.content_id
where c.[timestamp] > a.[Date_Added]
order by c.[timestamp] desc

答案 1 :(得分:0)

awk的默认分隔符是空格。由于您的数据有标签,因此您应使用'\ t'

进行分隔

<强> file.txt的

A    B   'A B C'
C    D   'D E F'

awk命令

awk '{BEGIN FS="\t"}{print $1 "," $3}' <file.txt

<强>输出

A,'A B C'
C,'D E F'