Adr*_*rie 1 bash pipe ubuntu-14.04
我正在尝试做什么:
find "${TEMPDIR}" -name *.[Tt][Xx][Tt] | /
xargs dos2unix -k | /
dd if=/dev/null of="$_" bs=1 seek=$(echo $(stat --format=%s "$_" ) - $( tail -n1 "$_" | wc -c) | bc )
Run Code Online (Sandbox Code Playgroud)
我无法将(EDIT 输出)文件名传输xargs dos2unix -k | /到第三行,我收到以下错误:
stat: cannot stat '': No such file or directory
tail: cannot open '' for reading: No such file or directory
dd: failed to open '': No such file or directory
Run Code Online (Sandbox Code Playgroud)
显然,我错误地认为这"$_"足以通过管道传递输出.
如何将输出(文本文件)传输xargs dos2unix -k到第三行,dd if=/dev/null of="$_" bs=1 seek=$(echo $(stat --format=%s "$_" ) - $( tail -n1 "$_" | wc -c) | bc )?
第3行的解决方案来自另一个关于从文件中删除最后一行的问题的答案,特别是这个答案被吹捧为大文件的一个很好的解决方案:https://stackoverflow.com/a/17794626/ 893766
这可以帮忙吗?
find "${TEMPDIR}" -iname '*.txt' -exec dos2unix "{}" \; -exec sed -i '$d' "{}" \;
Run Code Online (Sandbox Code Playgroud)