前五个字符

前五个字符

我需要从输出文件中复制前 5 个字符(总共 25 行),然后将该输出复制到文件中。删除输出中的空白或空条目也可能会很好。

答案1

head在这里可能有用:

   -c, --bytes=[-]K
          print the first K bytes of each file; with the leading '-', print all but the last K bytes of each file

答案2

cut -c5剪切输入中每行的前 5 个字符。如果要将行数限制为 25,请使用head -n25

cut -c5 file | head -n25

答案3

您可以使用以下sed命令:

sed                         \
  -e 's/\(^\w\{5\}\).*/\1/' \
  -e '26,$d'                \
  -e '/^$/d'                \
  input_file > output_file

第一部分匹配行开头的五个字符,打印它们并丢弃其余的。第二部分确保仅打印前 25 行。最后一部分删除空行。

答案4

cat inputfile | head -c 5 > outputfile

这应该将输出重定向到文件。

如果您希望删除空格,请过滤文件的内容,即在提取前五个字符之前删除空格。

cat inputfile | tr -d ' ' | head -c 5 > outputfile

您也可以使用以下格式来tr达到相同的效果。

cat inputfile | tr -d [:space:] | head -c 5 > outputfile

tr -d [:space:]删除已通过管道传输到此命令的文本中的所有空格。

如果您只想截断文件的前 5 个字符,请坚持上述解决方案。

现在,如果您希望对文件的每一行执行此操作,请按照以下步骤操作:

cat inputfile | sed -e 's/ //g' | awk '{print substr($0,0,5)}' > outputfile

或者

sed -e 's/ //g' < inputfile | awk '{print substr($0,0,5)}' > outputfile

说明:sed -e 's/ //g'删除所有空格并awk '{print substr($0,0,5)}'打印每行的前 5 个字符。

相关内容