猫文件名| 切-f2 | head -1 > newfile 包含比预期更多的字符

Nev*_*sed 0 command-line php cut files head

当我运行时:

cat filename | cut -f3 | head -1
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

apple
Run Code Online (Sandbox Code Playgroud)

但是,当我使用以下方法将其保存到文件时:

cat filename | cut -f3 | head -1 > newfile
Run Code Online (Sandbox Code Playgroud)

然后我使用 php 使用以下命令打开它:

$variable = file_get_contents("newfile"); 
echo $variable; // PRINTS "apple"
Run Code Online (Sandbox Code Playgroud)

但是当我执行以下操作时,输出为 6 !!!

echo strlen($variable); // PRINTS 6 WHEN I EXPECT 5!
$variable = "apple";
echo $variable; // NOW PRINTS 5
Run Code Online (Sandbox Code Playgroud)

知道如何避免这种情况吗?我需要在查找函数中使用此变量,但由于我无法识别的额外字符,它与我的查找不匹配。

当我回应以下内容时:

$variable = file_get_contents("newfile"); 
echo "TEST1";
echo "TEST2";
echo $variable;
echo "TEST3";
echo "TEST4";
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

TEST1TEST2apple
TEST3TEST4
Run Code Online (Sandbox Code Playgroud)

所以它必须以某种方式打印一个新行......?!?

SYN*_*SYN 6

确实,那是你的\n,由 strlen 计算

在 PHP 中,您可以rtrim( http://php.net/manual/fr/function.rtrim.php )从字符串的右端删除所有\n, \t, \r, \0& \x0B