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)
我究竟做错了什么?
下面给出了文件内容和使用的 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)
出现语法错误。我可以得到一些帮助吗?