Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash awk只对复制的数据有效,为什么?_Bash_Awk_Special Characters_Copy Paste - Fatal编程技术网

Bash awk只对复制的数据有效,为什么?

Bash awk只对复制的数据有效,为什么?,bash,awk,special-characters,copy-paste,Bash,Awk,Special Characters,Copy Paste,我有一个简单的awk,用于这里描述的目的: awk仅在我将数据复制/粘贴到新文件后才对其起作用。例如,如果我将head的输出定向到一个新文件中,awk仍然无法工作。仅当我将文件复制/粘贴到新文件中时,awk才起作用 `head -40 file.csv > output.csv` 这是awk: `awk -F, '/"Serial No."/ {sn = $2} /"Location:"/ {loc = $2} /"([0-9]{1,2}\/){2}[0-9]

我有一个简单的awk,用于这里描述的目的:

awk仅在我将数据复制/粘贴到新文件后才对其起作用。例如,如果我将head的输出定向到一个新文件中,awk仍然无法工作。仅当我将文件复制/粘贴到新文件中时,awk才起作用

`head -40 file.csv > output.csv`
这是awk:

`awk -F, '/"Serial No."/ {sn = $2} 
     /"Location:"/  {loc = $2} 
     /"([0-9]{1,2}\/){2}[0-9]{4} [0-9]{2}:[0-9]{2}"/ 
                    {$0 = loc FS sn FS $0}1' file.csv>master1.csv`
如果复制/粘贴数据并将其与原始数据进行比较,则输出会显示每一行中的差异,但不会说明位置。如果查看头输出和复制/粘贴文件之间的差异,您会得到:

`diff trap4_top.csv trap4_again.csv'
:

给出:

"Serial No.","0700000036022821"^M$
"Location:","LS_trap_2c"^M$
"High temperature limit (M-0C)",20^M$
"Low temperature limit (M-0C)",0^M$
"Date - Time","Temperature (M-0C)"^M$
"5/28/2015 08:00",24.0^M$
"5/28/2015 10:00",29.5^M$
"5/28/2015 12:00",28.0^M$
"5/28/2015 14:00",28.5^M$
"5/28/2015 16:00",27.0^M$

好的,我怀疑您的输入文件有DOS行结尾,即
\r
^M
(如上所示)

应通过运行以下命令将输入文件转换为unix行结尾:

dos2unix file.csv
否则,您可以执行以下操作:

head -40 file.csv | sed 's/\r//' | awk ...

好的,我怀疑您的输入文件有DOS行结尾,即
\r
^M
(如上所示)

应通过运行以下命令将输入文件转换为unix行结尾:

dos2unix file.csv
否则,您可以执行以下操作:

head -40 file.csv | sed 's/\r//' | awk ...

显示
head file.csv | cat-vte
Done的输出。它显示我怀疑是回车显示
head file.csv | cat-vte
的输出完成。这表明我怀疑你非常感谢你。我一整天都被这件事难住了。非常感谢你。我整天都被这件事难住了。