使用 cat 从 linux os 读取文件并忽略换行符
Read file from linux os using cat and ignore newline characters
我正在尝试使用命令行读取文件,从该文件中剪切一定数量的字符,然后将其写回文件。但是,我不想要任何换行符。
我看到的是,如果我使用 echo -n "Example Text" > tmp_file
,我可以在没有任何换行符的情况下将数据写入文件。但是,当您使用 cat 读取文件时,您会得到换行符文件。
如何,我可以读取一个文件,获取我需要的字符串并将其写回文件,同时不被换行所困扰。
任何帮助将不胜感激。
可以使用 tr
:
echo -n "Example Text" | tr -d "\n" > tmp_file
或sed
:
echo -n "Example Text" | sed -z "s/\n//g" > tmp_file
如果你只想删除输入末尾的换行符,可以这样做:
echo -e "Example Text\nSome more Text\n\n" | sed -ze "s/[\n]*$//g" > tmp_file
输出将是
Example Text
Some more Text (without newline here)
我正在尝试使用命令行读取文件,从该文件中剪切一定数量的字符,然后将其写回文件。但是,我不想要任何换行符。
我看到的是,如果我使用 echo -n "Example Text" > tmp_file
,我可以在没有任何换行符的情况下将数据写入文件。但是,当您使用 cat 读取文件时,您会得到换行符文件。
如何,我可以读取一个文件,获取我需要的字符串并将其写回文件,同时不被换行所困扰。
任何帮助将不胜感激。
可以使用 tr
:
echo -n "Example Text" | tr -d "\n" > tmp_file
或sed
:
echo -n "Example Text" | sed -z "s/\n//g" > tmp_file
如果你只想删除输入末尾的换行符,可以这样做:
echo -e "Example Text\nSome more Text\n\n" | sed -ze "s/[\n]*$//g" > tmp_file
输出将是
Example Text
Some more Text (without newline here)