加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash中逐个字符地读取用户给定的文件

发布时间:2020-12-16 01:52:47 所属栏目:安全 来源:网络整理
导读:我有一个未格式化的文件,我想在每100个字符后放置一个换行符并删除其中的任何其他新行,以便文件看起来具有一致的宽度和可读性 此代码段有助于阅读所有行 while read LINE do len=${#LINE} echo "Line length is : $len" done $file 但我如何为角色做同样的事
我有一个未格式化的文件,我想在每100个字符后放置一个换行符并删除其中的任何其他新行,以便文件看起来具有一致的宽度和可读性

此代码段有助于阅读所有行

while read LINE
        do
                len=${#LINE}
                echo "Line length is : $len"
        done < $file

但我如何为角色做同样的事情

想法是这样的:(只是一个例子,它可能有语法错误,尚未实现)

while read ch  #read character
  do
         chcount++ # increment character count

    if [ "$chcount" -eq "100" && "$ch"!="n" ] #if 100th character and is not a new line
    then
        echo -e "n" #echo new line
    elif [ "$ch"=="n" ]  #if character is not 100th but new line
        then
        ch=" " $replace it with space
     fi
  done < $file

我正在学习bash,所以请放轻松!

解决方法

bash在标准读取命令中添加-n标志,以指定要读取的字符数,而不是整行:

while read -n1 c; do
    echo "$c"
done < $file

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读