小编Pro*_*mer的帖子

sed 命令替换具有特殊字符“&”的字符串

test.csv 的内容是:

XYZ,IN123
Run Code Online (Sandbox Code Playgroud)

这是我的脚本:

Var1=IN123
Var2=A&B
sed -i "s/$Var1/$Var2/g" test.csv
Run Code Online (Sandbox Code Playgroud)

这是我替换test.csv内容的简单代码,当代码找到IN123时,将替换为A&B。

所以预期输出是:

XYZ,A&B
Run Code Online (Sandbox Code Playgroud)

但是通过上面的代码,我得到了:

XYZ,AIN123B
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash shell awk sed

4
推荐指数
2
解决办法
2万
查看次数

awk 命令转换文件中的日期格式

下面给出了文件内容和使用的 awk 命令:

输入文件:in_t.txt

1,ABC,SSS,20-OCT-16,4,1,0,5,0,0,0,0
2,DEF,AAA,20-JUL-16,4,1,0,5,0,0,0,0
Run Code Online (Sandbox Code Playgroud)

预期输出文件:

SSS|2016-10-20,5
AAA|2016-07-20,5
Run Code Online (Sandbox Code Playgroud)

我尝试了以下命令:

awk -F , '{print $3"|"$(date -d 4)","$8}' in_t.txt
Run Code Online (Sandbox Code Playgroud)

得到的输出文件为:

SSS|20-OCT-16,5
AAA|20-JUL-16,5
Run Code Online (Sandbox Code Playgroud)

我唯一想知道的是如何使用相同的 awk 命令格式化日期。尝试过

awk -F , '{print $3"|"$(date -d 4)","$8 +%Y-%m-%d}' in_t.txt
Run Code Online (Sandbox Code Playgroud)

出现语法错误。我可以得到一些帮助吗?

shell awk

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

awk ×2

shell ×2

bash ×1

sed ×1