设置为变量时,“\ n”将从grep输出中删除

时间:2012-03-05 05:21:14

标签: bash awk grep

我有以下文件

A Query 3 ms
B Query 4 ms 
A Query 5 ms

我写了grep命令来提取我需要的路径。

temp=`grep A acces.log | grep Query `

将它放在temp变量中是从输出中删除“\ n”。 如何强制bash不要删除\ n?

抱歉我的沟通不好 我正在关注o / p,如

A Query 3 ms A query 5 ms 

我需要采用以下格式的o / p

 A Query 3 ms
 A query 5 ms 

2 个答案:

答案 0 :(得分:6)

您需要使用双引号:

temp=`grep A acces.log | grep Query `
echo "$temp"

答案 1 :(得分:1)

首先,我会回应@Carl的问题:为什么你需要它在变量中?我能想到的大多数用途都是为了让以后添加回来不必要或容易。但是如果你真的需要保留它,我知道的最好的方法是在命令的输出中添加一个保护性的额外行,然后在输出存储在变量中后将其删除: p>

temp=$(grep A acces.log | grep Query; echo x)
temp="${temp%x}"

echo命令实际上添加了“x”和另一个换行符,但$()替换后删除了额外的换行符,因此需要明确删除的所有内容都是“×”。