{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/gnu-coreutils/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/gnu-coreutils/", "feed_url": "https://matoken.org/blog/tag/gnu-coreutils/feed/json/", "language": "ja", "title": "GNU coreutils – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "https://matoken.org/blog/?p=5219", "url": "https://matoken.org/blog/2026/02/06/gnu-coreutils-9-10-paste/", "title": "GNU coreutils 9.10\u3067paste\u306e\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u5229\u7528\u53ef\u80fd\u306b", "content_html": "
\n
\n

\n
\n

GNU coreutils 9.10 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e

\n
\n\n
\n

paste \u3067\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8a8d\u8b58\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u305d\u3046\u3067\u3059\uff0e\u307e\u3060\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u3093\u3060\u3068\u3061\u3087\u3063\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
    \n
  • \n

    paste(1) is now multi-byte character aware

    \n
  • \n
\n
\n
\n
\n

\n
\n

\u307e\u305a\u306f\u9069\u5f53\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ echo '1\n2\n3' > num\n$ echo '\u3044\n\u308d\n\u306f' > data
\n
\n
\n
\n

GNU coreutils 9.7 \u306epaste \u3067\u8a66\u3059\u3068\u65e5\u672c\u8a9e\u306e\u30c7\u30fc\u30bf\u3082\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ paste --version | head -1\npaste (GNU coreutils) 9.7\n$ paste num data\n1       \u3044\n2       \u308d\n3       \u306f
\n
\n
\n
\n

NEWS \u306e\u4e0b\u306e\u65b9\u3092\u898b\u308b\u3068\u5c11\u3057\u8a73\u3057\u304f\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n
\n
'paste' now supports multi-byte --delimiters characters.
\n
\n
\n
\n
\n
\n

\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067\u518d\u5ea6\uff0c\u4eca\u5ea6\u306f\u30c7\u30df\u30ea\u30bf\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e

\n
\n
\n
GNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b , \u3092\u6307\u5b9a
\n
\n
$ paste num data -d,\n1,\u3044\n2,\u308d\n3,\u306f
\n
\n
\n
\n
GNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b \uff1d \u3092\u6307\u5b9a
\n
\n
$ paste num data -d\uff1d\n1\ufffd\ufffd\n2\ufffd\ufffd\n3\ufffd\ufffd
\n
\n
\n
\n

\u305f\u3057\u304b\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u4f7f\u3046\u3068\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3059\uff0e

\n
\n
\n
GNU coreutils 9.10 \u3092\u7528\u610f
\n
\n
$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz \\\n\thttps://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig\n$ echo 'SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=' | cksum -a sha256 --check\ncoreutils-9.10.tar.xz: OK\n$ gpg --verify coreutils-9.10.tar.xz.sig\ngpg: assuming signed data in 'coreutils-9.10.tar.xz'\ngpg: Signature made Wed Feb  4 21:46:29 2026 JST\ngpg:                using RSA key 6C37DC12121A5006BC1DB804DF6FD971306037D9\ngpg: Good signature from \"P draig Brady <P@draigBrady.com>\" [unknown]\ngpg:                 aka \"P draig Brady <pixelbeat@gnu.org>\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg:          There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9\n$ tar xvf coreutils-9.10.tar.xz\n$ cd coreutils-9.10\n$ sudo apt build-dep coreutils\n$ ./configure\n$ make\n$ src/paste --version | head -1\npaste (GNU coreutils) 9.10
\n
\n
\n
\n
GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6307\u5b9a
\n
\n
$ ./src/paste num data -d\uff1d\n1\uff1d\u3044\n2\uff1d\u308d\n3\uff1d\u306f\n$ ./src/paste num data -d🐈\n1🐈\u3044\n2🐈\u308d\n3🐈\u306f
\n
\n
\n
\n

\u3068\u3044\u3046\u3053\u3068\u3067GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\uff0e
\n\u4f7f\u3044\u9053\u306f\u3042\u307e\u308a\u6d6e\u304b\u3073\u307e\u305b\u3093\u304c\u2026\u2026\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ dpkg-query -W coreutils\ncoreutils       9.7-3\n$ src/paste --version\npaste (GNU coreutils) 9.10\nCopyright (C) 2026 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by David M. Ihnat and David MacKenzie.\n$ lsb_release -dr\nDescription:    Debian GNU/Linux forky/sid\nRelease:        n/a\n$ arch\nx86_64
\n
\n
\n\n
\n
\n", "content_text": "GNU coreutils 9.10 \u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u307e\u3057\u305f\uff0e\n\n\n\n\ncoreutils-9.10 released [stable]\n\n\n\n\npaste \u3067\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8a8d\u8b58\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u305d\u3046\u3067\u3059\uff0e\u307e\u3060\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u304b\u3063\u305f\u3093\u3060\u3068\u3061\u3087\u3063\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\npaste(1) is now multi-byte character aware\n\n\n\n\n\n\n\n\u307e\u305a\u306f\u9069\u5f53\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u7528\u610f\u3057\u307e\u3059\uff0e\n\n\n\n$ echo '1\n2\n3' > num\n$ echo '\u3044\n\u308d\n\u306f' > data\n\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u8a66\u3059\u3068\u65e5\u672c\u8a9e\u306e\u30c7\u30fc\u30bf\u3082\u3046\u307e\u304f\u52d5\u3044\u3066\u3044\u305d\u3046\u3067\u3059\uff0e\n\n\n\n$ paste --version | head -1\npaste (GNU coreutils) 9.7\n$ paste num data\n1 \u3044\n2 \u308d\n3 \u306f\n\n\n\nNEWS \u306e\u4e0b\u306e\u65b9\u3092\u898b\u308b\u3068\u5c11\u3057\u8a73\u3057\u304f\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\n\n'paste' now supports multi-byte --delimiters characters.\n\n\n\n\n\n\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067\u518d\u5ea6\uff0c\u4eca\u5ea6\u306f\u30c7\u30df\u30ea\u30bf\u3092\u6307\u5b9a\u3057\u307e\u3059\uff0e\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b , \u3092\u6307\u5b9a\n\n$ paste num data -d,\n1,\u3044\n2,\u308d\n3,\u306f\n\n\n\nGNU coreutils 9.7 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b \uff1d \u3092\u6307\u5b9a\n\n$ paste num data -d\uff1d\n1\ufffd\ufffd\n2\ufffd\ufffd\n3\ufffd\ufffd\n\n\n\n\u305f\u3057\u304b\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u4f7f\u3046\u3068\u304a\u304b\u3057\u304f\u306a\u308a\u307e\u3059\uff0e\n\n\nGNU coreutils 9.10 \u3092\u7528\u610f\n\n$ wget https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz \\\n\thttps://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig\n$ echo 'SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=' | cksum -a sha256 --check\ncoreutils-9.10.tar.xz: OK\n$ gpg --verify coreutils-9.10.tar.xz.sig\ngpg: assuming signed data in 'coreutils-9.10.tar.xz'\ngpg: Signature made Wed Feb 4 21:46:29 2026 JST\ngpg: using RSA key 6C37DC12121A5006BC1DB804DF6FD971306037D9\ngpg: Good signature from \"P draig Brady <P@draigBrady.com>\" [unknown]\ngpg: aka \"P draig Brady <pixelbeat@gnu.org>\" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg: There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 6C37 DC12 121A 5006 BC1D B804 DF6F D971 3060 37D9\n$ tar xvf coreutils-9.10.tar.xz\n$ cd coreutils-9.10\n$ sudo apt build-dep coreutils\n$ ./configure\n$ make\n$ src/paste --version | head -1\npaste (GNU coreutils) 9.10\n\n\n\nGNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6307\u5b9a\n\n$ ./src/paste num data -d\uff1d\n1\uff1d\u3044\n2\uff1d\u308d\n3\uff1d\u306f\n$ ./src/paste num data -d🐈\n1🐈\u3044\n2🐈\u308d\n3🐈\u306f\n\n\n\n\u3068\u3044\u3046\u3053\u3068\u3067GNU coreutils 9.10 \u306epaste \u3067\u30c7\u30ea\u30df\u30bf\u306b\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u306e\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\uff0e\n\u4f7f\u3044\u9053\u306f\u3042\u307e\u308a\u6d6e\u304b\u3073\u307e\u305b\u3093\u304c\u2026\u2026\uff0e\n\n\n\u74b0\u5883\n\n$ dpkg-query -W coreutils\ncoreutils 9.7-3\n$ src/paste --version\npaste (GNU coreutils) 9.10\nCopyright (C) 2026 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by David M. Ihnat and David MacKenzie.\n$ lsb_release -dr\nDescription: Debian GNU/Linux forky/sid\nRelease: n/a\n$ arch\nx86_64\n\n\n\ntoot\n\n\nmatoken :fox:: “coreutils-9.10 released [stabl\u2026” – \u3044\u306a\u3053\u3093", "date_published": "2026-02-06T06:07:07+09:00", "date_modified": "2026-02-06T06:07:09+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "GNU coreutils", "Debian", "Linux", "sid" ] }, { "id": "http://matoken.org/blog/?p=2963", "url": "https://matoken.org/blog/2021/02/05/display-line-feed-code-etc-with-cat-of-gnu-coreutils/", "title": "GNU coreutils\u306ecat\u3067\u6539\u884c\u30b3\u30fc\u30c9\u306a\u3069\u3092\u78ba\u8a8d\u3059\u308b", "content_html": "
\n

\u6700\u8fd1\u77e5\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
LC_MESSAGES=ja_JP.UTF-8\u306ecat(1)
\n
\n
$ LC_MESSAGES=ja_JP.UTF-8 man cat | grep '\\-A' -A25\n       -A, --show-all           -vET \u3068\u540c\u3058\n\n       -b, --number-nonblank\n              \u7a7a\u884c\u4ee5\u5916\u306b\u884c\u756a\u53f7\u3092\u4ed8\u3051\u308b\u3002-n \u3088\u308a\u512a\u5148\u3055\u308c\u308b\n\n       -e                       -vE \u3068\u540c\u3058\n\n       -E, --show-ends\n              \u884c\u306e\u6700\u5f8c\u306b $ \u3092\u4ed8\u3051\u308b\n\n       -n, --number\n              \u5168\u3066\u306e\u884c\u306b\u884c\u756a\u53f7\u3092\u4ed8\u3051\u308b\n\n       -s, --squeeze-blank\n              \u9023\u7d9a\u3057\u305f\u7a7a\u884c\u306e\u51fa\u529b\u3092\u884c\u308f\u306a\u3044\n\n       -t                       -vT \u3068\u540c\u3058\n\n       -T, --show-tabs\n              TAB \u6587\u5b57\u3092 ^I \u3067\u8868\u793a\n\n       -u     (\u7121\u8996)\n\n       -v, --show-nonprinting\n              ^ \u3084 M- \u8868\u8a18\u3092\u4f7f\u7528\u3059\u308b (LFD \u3068 TAB \u306f\u9664\u304f)
\n
\n
\n
\n
LC_MESSAGES=C\u306ecat(1)
\n
\n
$ LC_MESSAGES=C man cat | grep '\\-A' -A26\n       -A, --show-all\n              equivalent to -vET\n\n       -b, --number-nonblank\n              number nonempty output lines, overrides -n\n\n       -e     equivalent to -vE\n\n       -E, --show-ends\n              display $ at end of each line\n\n       -n, --number\n              number all output lines\n\n       -s, --squeeze-blank\n              suppress repeated empty output lines\n\n       -t     equivalent to -vT\n\n       -T, --show-tabs\n              display TAB characters as ^I\n\n       -u     (ignored)\n\n       -v, --show-nonprinting\n              use ^ and M- notation, except for LFD and TAB
\n
\n
\n
\n
\u30c6\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210
\n
\n
$ echo 'hoge\n>       fuga\n> ' | unix2dos > /tmp/test
\n
\n
\n
\n
od\u3067\u4e2d\u8eab\u78ba\u8a8d
\n
\n
$ od -xc /tmp/test\n0000000    6f68    6567    0a0d    6609    6775    0d61    0d0a    000a\n          h   o   g   e  \\r  \\n  \\t   f   u   g   a  \\r  \\n  \\r  \\n\n0000017
\n
\n
\n
\n
\u666e\u901a\u306bcat
\n
\n
$ cat /tmp/test\nhoge\n\tfuga
\n
\n
\n
\n
-T \u3067TAB\u3092 ^I \u3068\u3057\u3066\u8868\u793a
\n
\n
$ cat -T /tmp/test\nhoge\n^Ifuga
\n
\n
\n
\n
-v \u3067\\n\u3084TAB\u3092\u9664\u304f\u5236\u5fa1\u30b3\u30fc\u30c9\u3092\u8868\u793a\u3053\u3053\u3067\u306f\\r\u304c^M\u3068\u3057\u3066\u8868\u793a\u3055\u308c\u3066\u3044\u308b
\n
\n
$ cat -v /tmp/test\nhoge^M\n\tfuga^M\n^M
\n
\n
\n
\n
-t \u3067 -vT \u3068\u540c\u3058
\n
\n
$ cat -t /tmp/test\nhoge^M\n^Ifuga^M\n^M
\n
\n
\n
\n
-E \u3067\u884c\u672b\u306b$\u3092\u8868\u793a\uff0e\\r\u304c\u3042\u308b\u3068\u982d\u306b\u4ed8\u3044\u3066\u3057\u307e\u3046\u3088\u3046
\n
\n
$ cat -E /tmp/test\n$oge\n$\tfuga\n$
\n
\n
\n
\n
\n
\n\n\n\n\n\n\n\n
\n
Note
\n
\n\u8ffd\u8a18 2020-02-10)
\nDebian\u3067reportbug\u3057\u305f\u3089patch\u304c :)
\nDebian 11 Bullseye\u3084Ubuntu 21.04\u306b\u5165\u308b\u304b\u306a?
\nhttps://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=982208;filename=cat\u2014\u200bshow-ends.diff;msg=10
\n
\n
\n
\n
\n
-A \u3067 -vET \u3068\u540c\u3058
\n
\n
$ cat -A /tmp/test\nhoge^M$\n^Ifuga^M$\n^M$
\n
\n
\n
\n
-n \u3067\u884c\u756a\u53f7\u3092\u8868\u793a
\n
\n
$ cat -n /tmp/test\n     1\thoge\n     2\t\tfuga\n     3
\n
\n
\n
\n
-An \u3067\u884c\u756a\u53f7\u3068\u8a18\u53f7
\n
\n
$ cat -An /tmp/test\n     1\thoge^M$\n     2\t^Ifuga^M$\n     3\t^M$
\n
\n
\n
\n

vim\u3067\u306f :set list, :set number \u3067\u3060\u3044\u305f\u3044\u540c\u3058\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e

\n
\n
\n
vim
\n
\n
  1 hoge$\n  2 ^Ifuga$\n  3 $
\n
\n
\n
\n

\"vim\"/

\n
\n
\n
\u74b0\u5883
\n
\n
$ cat --version\ncat (GNU coreutils) 8.32\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by Torbjorn Granlund and Richard M. Stallman.\n$ dpkg-query -W coreutils\ncoreutils\t8.32-4+b1\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux bullseye/sid\nRelease:\tunstable\n$ uname -m\nx86_64
\n
\n
\n", "content_text": "\u6700\u8fd1\u77e5\u308a\u307e\u3057\u305f\uff0e\n\n\nLC_MESSAGES=ja_JP.UTF-8\u306ecat(1)\n\n$ LC_MESSAGES=ja_JP.UTF-8 man cat | grep '\\-A' -A25\n -A, --show-all -vET \u3068\u540c\u3058\n\n -b, --number-nonblank\n \u7a7a\u884c\u4ee5\u5916\u306b\u884c\u756a\u53f7\u3092\u4ed8\u3051\u308b\u3002-n \u3088\u308a\u512a\u5148\u3055\u308c\u308b\n\n -e -vE \u3068\u540c\u3058\n\n -E, --show-ends\n \u884c\u306e\u6700\u5f8c\u306b $ \u3092\u4ed8\u3051\u308b\n\n -n, --number\n \u5168\u3066\u306e\u884c\u306b\u884c\u756a\u53f7\u3092\u4ed8\u3051\u308b\n\n -s, --squeeze-blank\n \u9023\u7d9a\u3057\u305f\u7a7a\u884c\u306e\u51fa\u529b\u3092\u884c\u308f\u306a\u3044\n\n -t -vT \u3068\u540c\u3058\n\n -T, --show-tabs\n TAB \u6587\u5b57\u3092 ^I \u3067\u8868\u793a\n\n -u (\u7121\u8996)\n\n -v, --show-nonprinting\n ^ \u3084 M- \u8868\u8a18\u3092\u4f7f\u7528\u3059\u308b (LFD \u3068 TAB \u306f\u9664\u304f)\n\n\n\nLC_MESSAGES=C\u306ecat(1)\n\n$ LC_MESSAGES=C man cat | grep '\\-A' -A26\n -A, --show-all\n equivalent to -vET\n\n -b, --number-nonblank\n number nonempty output lines, overrides -n\n\n -e equivalent to -vE\n\n -E, --show-ends\n display $ at end of each line\n\n -n, --number\n number all output lines\n\n -s, --squeeze-blank\n suppress repeated empty output lines\n\n -t equivalent to -vT\n\n -T, --show-tabs\n display TAB characters as ^I\n\n -u (ignored)\n\n -v, --show-nonprinting\n use ^ and M- notation, except for LFD and TAB\n\n\n\n\u30c6\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210\n\n$ echo 'hoge\n> fuga\n> ' | unix2dos > /tmp/test\n\n\n\nod\u3067\u4e2d\u8eab\u78ba\u8a8d\n\n$ od -xc /tmp/test\n0000000 6f68 6567 0a0d 6609 6775 0d61 0d0a 000a\n h o g e \\r \\n \\t f u g a \\r \\n \\r \\n\n0000017\n\n\n\n\u666e\u901a\u306bcat\n\n$ cat /tmp/test\nhoge\n\tfuga\n\n\n\n-T \u3067TAB\u3092 ^I \u3068\u3057\u3066\u8868\u793a\n\n$ cat -T /tmp/test\nhoge\n^Ifuga\n\n\n\n-v \u3067\\n\u3084TAB\u3092\u9664\u304f\u5236\u5fa1\u30b3\u30fc\u30c9\u3092\u8868\u793a\u3053\u3053\u3067\u306f\\r\u304c^M\u3068\u3057\u3066\u8868\u793a\u3055\u308c\u3066\u3044\u308b\n\n$ cat -v /tmp/test\nhoge^M\n\tfuga^M\n^M\n\n\n\n-t \u3067 -vT \u3068\u540c\u3058\n\n$ cat -t /tmp/test\nhoge^M\n^Ifuga^M\n^M\n\n\n\n-E \u3067\u884c\u672b\u306b$\u3092\u8868\u793a\uff0e\\r\u304c\u3042\u308b\u3068\u982d\u306b\u4ed8\u3044\u3066\u3057\u307e\u3046\u3088\u3046\n\n$ cat -E /tmp/test\n$oge\n$\tfuga\n$\n\n\n\n\n\n\n\n\n\nNote\n\n\n\u8ffd\u8a18 2020-02-10)\nDebian\u3067reportbug\u3057\u305f\u3089patch\u304c :)\nDebian 11 Bullseye\u3084Ubuntu 21.04\u306b\u5165\u308b\u304b\u306a?\nhttps://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=982208;filename=cat\u2014\u200bshow-ends.diff;msg=10\n\n\n\n\n\n\n\n-A \u3067 -vET \u3068\u540c\u3058\n\n$ cat -A /tmp/test\nhoge^M$\n^Ifuga^M$\n^M$\n\n\n\n-n \u3067\u884c\u756a\u53f7\u3092\u8868\u793a\n\n$ cat -n /tmp/test\n 1\thoge\n 2\t\tfuga\n 3\n\n\n\n-An \u3067\u884c\u756a\u53f7\u3068\u8a18\u53f7\n\n$ cat -An /tmp/test\n 1\thoge^M$\n 2\t^Ifuga^M$\n 3\t^M$\n\n\n\nvim\u3067\u306f :set list, :set number \u3067\u3060\u3044\u305f\u3044\u540c\u3058\u611f\u3058\u3067\u3057\u3087\u3046\u304b\uff0e\n\n\nvim\n\n 1 hoge$\n 2 ^Ifuga$\n 3 $\n\n\n\n\n\n\n\u74b0\u5883\n\n$ cat --version\ncat (GNU coreutils) 8.32\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by Torbjorn Granlund and Richard M. Stallman.\n$ dpkg-query -W coreutils\ncoreutils\t8.32-4+b1\n$ lsb_release -dr\nDescription:\tDebian GNU/Linux bullseye/sid\nRelease:\tunstable\n$ uname -m\nx86_64", "date_published": "2021-02-05T00:55:53+09:00", "date_modified": "2021-02-10T18:21:01+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "cat", "GNU coreutils", "Debian", "Linux", "sid" ] }, { "id": "http://matoken.org/blog/?p=2027", "url": "https://matoken.org/blog/2018/08/14/gnu-coreutils-dd-had-a-progress-option/", "title": "GNU coreutils \u306e dd \u306b \u30d7\u30ed\u30b0\u30ec\u30b9\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u3063\u305f", "content_html": "
\n

dd \u306e\u9032\u6357\u306f SIGUSR1 \u3092\u6295\u3052\u308b\u3068\u899a\u3048\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0cman \u3092\u773a\u3081\u3066\u3044\u308b\u3068 status=progress \u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308b\u306e\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
man\u3088\u308a
\n
\n
\n
status=LEVEL\r\n       The LEVEL of information to print to stderr; 'none' suppresses\r\n       everything but error messages, 'noxfer' suppresses  the  final\r\n       transfer  statistics,  'progress' shows periodic transfer sta\u2010\r\n       tistics
\n
\n
\n
\n
\n
\n

2015-07-03 \u306e GNU coreutils 8.24 \u3067\u5165\u3063\u305f\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n\n
\n
\n
dd accepts a new status=progress level to print data transfer statistics\r\non stderr approximately every second.
\n
\n
\n
\n
\n
\n

\u3053\u308c\u307e\u3067\u3082\u72ec\u81ea\u30d1\u30c3\u30c1\u3067dd\u306b\u30d7\u30ed\u30b0\u30ec\u30b9\u3092\u51fa\u3059\u3088\u3046\u306b\u3059\u308b\u3082\u306e\u306a\u3069\u306f\u3042\u308a\u307e\u3057\u305f\u304cGNU dd\u306b\u5c0e\u5165\u3055\u308c\u3066\u3044\u305f\u3093\u3067\u3059\u306d\uff0e\u6c17\u3065\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e

\n

\n

\u3066\u3053\u3068\u3067\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\u307e\u305a\u306f\u5f93\u6765\u306e\u65b9\u6cd5\u304b\u3089\uff0e

\n
\n
\n
dd\u958b\u59cb
\n
\n
$ dd if=/dev/urandom of=/dev/null count=99999 &\r\n[1] 19386
\n
\n
\n
\n
kill\u30b3\u30de\u30f3\u30c9\u3067 USER1 \u30b7\u30b0\u30ca\u30eb\u3092\u6295\u3052\u308b
\n
\n
$ kill -USR1 19522\r\n2294+0 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n2293+0 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n2404384768 bytes (2.4 GB, 2.2 GiB) copied, 11.0258 s, 218 MB/s
\n
\n
\n
\n
killall\u30b3\u30de\u30f3\u30c9\u3067pid\u3067\u306f\u306a\u304f\u30d7\u30ed\u30bb\u30b9\u540d\u3092\u6307\u5b9a
\n
\n
$ killall -USR1 dd\r\n15648+1 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n15647+1 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n16407664896 bytes (16 GB, 15 GiB) copied, 76.1063 s, 216 MB/s
\n
\n
\n
\n
\n
\n

\u203bpkill\u3092\u4f7f\u3046\u3068\u90e8\u5206\u4e00\u81f4\u306b\u306a\u308b\u306e\u3067\u610f\u56f3\u3057\u306a\u3044\u30d7\u30ed\u30bb\u30b9\u306b\u30b7\u30b0\u30ca\u30eb\u3092\u9001\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f

\n
\n
\n
\n
$ pgrep dd\r\n2\r\n70\r\n3937\r\n$ ps 2 70 3937\r\n  PID TTY      STAT   TIME COMMAND\r\n    2 ?        S      0:00 [kthreadd]\r\n   70 ?        I<     0:00 [ipv6_addrconf]\r\n 3937 pts/9    R      0:13 dd if=/dev/urandom of=/dev/null bs=1M count=99999
\n
\n
\n
\n
\n
\n
watch\u30b3\u30de\u30f3\u30c9\u3067\u5b9a\u671f\u7684\u306b\u5b9f\u884c
\n
\n
$ watch killall -USR1 dd\r\n98448+3 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n98447+3 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n103231407040 bytes (103 GB, 96 GiB) copied, 487.072 s, 212 MB/s\r\n :
\n
\n
\n
\n
dd\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\u306bpv\u30b3\u30de\u30f3\u30c9\u3092\u631f\u3080
\n
\n
$ cat /dev/urandom | pv | dd of=/dev/null bs=1M count=99999\r\n1.06GiB 0:00:06 [ 182MiB/s] [     <=>                                        ]
\n
\n
\n
\n
pv\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u51fa\u529b
\n
\n
$ pv /dev/urandom | dd of=/dev/null bs=1M count=99999\r\n 502MiB 0:00:03 [ 170MiB/s] [  <=>                                           ]
\n
\n
\n
\n
dd\u306e status=progress \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u5229\u7528
\n
\n
$ dd if=/dev/urandom of=/dev/null bs=1M count=99999 status=progress\r\n1910505472 bytes (1.9 GB, 1.8 GiB) copied, 9 s, 212 MB/s
\n
\n
\n
\n\n
\n
\n

\u6d41\u77f3\u306b\u7d14\u6b63\u3060\u3051\u3042\u3063\u3066\u3044\u3044\u611f\u3058\u3067\u3059\u306d\uff0e\u554f\u984c\u306f\u3044\u3056\u4f7f\u3046\u3068\u304d\u306b\u601d\u3044\u51fa\u305b\u308b\u304b\u3068\u3044\u3046\u2026\u2026\uff0epv\u304c\u899a\u3048\u3084\u3059\u304f\u3066\u4fbf\u5229\u306a\u3093\u3067\u3059\u3088\u306d\uff0e

\n

\u305d\u3082\u305d\u3082dd\u4f7f\u308f\u305aGNU ddrescue \u3092\u4f7f\u3046?\u307e\u3042\u5927\u62b5\u306e\u7528\u9014\u3067\u306f\u305d\u3063\u3061\u306e\u307b\u3046\u304c\u826f\u3044\u304b\u3082\u3067\u3059\uff0e

\n
\n
\n
\u8a66\u3057\u305f\u74b0\u5883
\n
\n
$ dd --version\r\ndd (coreutils) 8.28\r\nCopyright (C) 2017 Free Software Foundation, Inc.\r\n\u30e9\u30a4\u30bb\u30f3\u30b9 GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\r\nThis is free software: you are free to change and redistribute it.\r\nThere is NO WARRANTY, to the extent permitted by law.\r\n\r\n\u4f5c\u8005 Paul Rubin\u3001 David MacKenzie\u3001\u304a\u3088\u3073 Stuart Kemp\u3002\r\n$ dpkg-query -W coreutils\r\ncoreutils       8.28-1\r\npv      1.6.6-1\r\n$ lsb_release -d\r\nDescription:    Debian GNU/Linux unstable (sid)\r\n$ uname -m\r\nx86_64
\n
\n
\n

\n", "content_text": "dd \u306e\u9032\u6357\u306f SIGUSR1 \u3092\u6295\u3052\u308b\u3068\u899a\u3048\u3066\u3044\u305f\u306e\u3067\u3059\u304c\uff0cman \u3092\u773a\u3081\u3066\u3044\u308b\u3068 status=progress \u3068\u3044\u3046\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308b\u306e\u306b\u6c17\u3065\u304d\u307e\u3057\u305f\uff0e\n\n\n\nman\u3088\u308a\n\n\nstatus=LEVEL\r\n The LEVEL of information to print to stderr; 'none' suppresses\r\n everything but error messages, 'noxfer' suppresses the final\r\n transfer statistics, 'progress' shows periodic transfer sta\u2010\r\n tistics\n\n\n\n\n\n2015-07-03 \u306e GNU coreutils 8.24 \u3067\u5165\u3063\u305f\u3088\u3046\u3067\u3059\uff0e\n\n\n\n[coreutils-announce] coreutils-8.24 released [stable]\n\n\ndd accepts a new status=progress level to print data transfer statistics\r\non stderr approximately every second.\n\n\n\n\n\n\u3053\u308c\u307e\u3067\u3082\u72ec\u81ea\u30d1\u30c3\u30c1\u3067dd\u306b\u30d7\u30ed\u30b0\u30ec\u30b9\u3092\u51fa\u3059\u3088\u3046\u306b\u3059\u308b\u3082\u306e\u306a\u3069\u306f\u3042\u308a\u307e\u3057\u305f\u304cGNU dd\u306b\u5c0e\u5165\u3055\u308c\u3066\u3044\u305f\u3093\u3067\u3059\u306d\uff0e\u6c17\u3065\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e\n\n\u3066\u3053\u3068\u3067\u8a66\u3057\u3066\u307f\u307e\u3059\uff0e\u307e\u305a\u306f\u5f93\u6765\u306e\u65b9\u6cd5\u304b\u3089\uff0e\n\n\ndd\u958b\u59cb\n\n$ dd if=/dev/urandom of=/dev/null count=99999 &\r\n[1] 19386\n\n\n\nkill\u30b3\u30de\u30f3\u30c9\u3067 USER1 \u30b7\u30b0\u30ca\u30eb\u3092\u6295\u3052\u308b\n\n$ kill -USR1 19522\r\n2294+0 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n2293+0 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n2404384768 bytes (2.4 GB, 2.2 GiB) copied, 11.0258 s, 218 MB/s\n\n\n\nkillall\u30b3\u30de\u30f3\u30c9\u3067pid\u3067\u306f\u306a\u304f\u30d7\u30ed\u30bb\u30b9\u540d\u3092\u6307\u5b9a\n\n$ killall -USR1 dd\r\n15648+1 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n15647+1 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n16407664896 bytes (16 GB, 15 GiB) copied, 76.1063 s, 216 MB/s\n\n\n\n\n\n\u203bpkill\u3092\u4f7f\u3046\u3068\u90e8\u5206\u4e00\u81f4\u306b\u306a\u308b\u306e\u3067\u610f\u56f3\u3057\u306a\u3044\u30d7\u30ed\u30bb\u30b9\u306b\u30b7\u30b0\u30ca\u30eb\u3092\u9001\u3063\u3066\u3057\u307e\u3046\u3053\u3068\u304c\u3042\u308b\u306e\u3067\u6ce8\u610f\n\n\n\n$ pgrep dd\r\n2\r\n70\r\n3937\r\n$ ps 2 70 3937\r\n PID TTY STAT TIME COMMAND\r\n 2 ? S 0:00 [kthreadd]\r\n 70 ? I< 0:00 [ipv6_addrconf]\r\n 3937 pts/9 R 0:13 dd if=/dev/urandom of=/dev/null bs=1M count=99999\n\n\n\n\n\nwatch\u30b3\u30de\u30f3\u30c9\u3067\u5b9a\u671f\u7684\u306b\u5b9f\u884c\n\n$ watch killall -USR1 dd\r\n98448+3 \u30ec\u30b3\u30fc\u30c9\u5165\u529b\r\n98447+3 \u30ec\u30b3\u30fc\u30c9\u51fa\u529b\r\n103231407040 bytes (103 GB, 96 GiB) copied, 487.072 s, 212 MB/s\r\n :\n\n\n\ndd\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\u306bpv\u30b3\u30de\u30f3\u30c9\u3092\u631f\u3080\n\n$ cat /dev/urandom | pv | dd of=/dev/null bs=1M count=99999\r\n1.06GiB 0:00:06 [ 182MiB/s] [ <=> ]\n\n\n\npv\u30b3\u30de\u30f3\u30c9\u3067\u30d5\u30a1\u30a4\u30eb\u51fa\u529b\n\n$ pv /dev/urandom | dd of=/dev/null bs=1M count=99999\r\n 502MiB 0:00:03 [ 170MiB/s] [ <=> ]\n\n\n\ndd\u306e status=progress \u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u5229\u7528\n\n$ dd if=/dev/urandom of=/dev/null bs=1M count=99999 status=progress\r\n1910505472 bytes (1.9 GB, 1.8 GiB) copied, 9 s, 212 MB/s\n\n\n\n\n\n\n\u6d41\u77f3\u306b\u7d14\u6b63\u3060\u3051\u3042\u3063\u3066\u3044\u3044\u611f\u3058\u3067\u3059\u306d\uff0e\u554f\u984c\u306f\u3044\u3056\u4f7f\u3046\u3068\u304d\u306b\u601d\u3044\u51fa\u305b\u308b\u304b\u3068\u3044\u3046\u2026\u2026\uff0epv\u304c\u899a\u3048\u3084\u3059\u304f\u3066\u4fbf\u5229\u306a\u3093\u3067\u3059\u3088\u306d\uff0e\n\u305d\u3082\u305d\u3082dd\u4f7f\u308f\u305aGNU ddrescue \u3092\u4f7f\u3046?\u307e\u3042\u5927\u62b5\u306e\u7528\u9014\u3067\u306f\u305d\u3063\u3061\u306e\u307b\u3046\u304c\u826f\u3044\u304b\u3082\u3067\u3059\uff0e\n\n\n\u8a66\u3057\u305f\u74b0\u5883\n\n$ dd --version\r\ndd (coreutils) 8.28\r\nCopyright (C) 2017 Free Software Foundation, Inc.\r\n\u30e9\u30a4\u30bb\u30f3\u30b9 GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\r\nThis is free software: you are free to change and redistribute it.\r\nThere is NO WARRANTY, to the extent permitted by law.\r\n\r\n\u4f5c\u8005 Paul Rubin\u3001 David MacKenzie\u3001\u304a\u3088\u3073 Stuart Kemp\u3002\r\n$ dpkg-query -W coreutils\r\ncoreutils 8.28-1\r\npv 1.6.6-1\r\n$ lsb_release -d\r\nDescription: Debian GNU/Linux unstable (sid)\r\n$ uname -m\r\nx86_64", "date_published": "2018-08-14T06:27:34+09:00", "date_modified": "2018-08-23T18:24:49+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "dd", "GNU coreutils", "pv", "Debian", "Linux", "sid" ] } ] }