sdg*_*dgd 1 linux bash shell awk
我是shell脚本的新手,我awk -FS和awk -f使用的命令之间很困惑.我试过阅读这两个页面之间差异的多个页面但是无法理解清楚.请帮助.这是一个例子:让我们考虑一个文本文件说,data.txt具有以下细节.
S.No Product Qty Price
1-Pen-2-10
2-Pencil-1-5
3-Eraser-1-2
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用以下命令时:
$ awk -f'-' '{print $1,$2} data.txt
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
1 Pen
2 Pencil
3 Eraser
Run Code Online (Sandbox Code Playgroud)
但是当我使用命令时:
$ awk -FS'-' '{print $1,$2} data.txt
输出是:
1-Pen-2-10
2-Pencil-1-5
3-Eraser-1-2
Run Code Online (Sandbox Code Playgroud)
我不明白它使用-FS命令的区别.有人可以帮我解决这两个命令之间究竟发生了什么.谢谢!
你比你想象的更困惑.没有-FS.
FS 是包含字段分隔符的变量.
-F是一个设置FS它的参数的选项.
-f 是一个选项,其参数是包含要执行的脚本的文件的名称.
你发布的脚本会产生语法错误,而不是你说它们产生的输出,所以idk告诉你什么...